Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Je kunt ook een cookievrije versie van de website bezoeken met minder functionaliteit. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 7 reacties, 3.379 views •
Bron: Yii PHP Framework, submitter: BBrunekreeft

Yii PHP Framework logo (75 pix)Yii is een component based PHP-framework, met volgens de ontwikkelaars zeer goede prestaties die het bijzonder geschikt maken voor het ontwikkelen van grootschalige webapplicaties. Het framework bevat tal van opties, zoals mvc, dao/ActiveRecord, I18N/L10N, caching, jQuery-based AJAX support, scaffolding, input validation, widgets, events en theming. Voor meer informatie verwijzen we naar deze pagina. De ontwikkelaars hebben versie 1.1.11 uitgebrachten hierin zijn de volgende veranderingen en verbeteringen aangebracht:

Bugs fixed:
  • #098: No correct identity value being returned when using Active Record and mssql (c-schmitz)
  • #114: CUniqueValidator and CExistValidator now respect table alias while creating db query condition (klimov-paul)
  • #145: CGettextMoFile now can parse strings with no context (eagleoneraptor)
  • #148: Fixed the bug in the blog demo that was not deleting right comment when not on the first page (mdomba)
  • #161: CCookieCollection::remove() now accepts an array of cookie options as a second argument to facilitate correct cookie removal (maximcherny)
  • #164: CEmailValidator.checkPort now checks the port 25 of listed MX servers (DaSourcerer)
  • #178: webapp creation with relative paths like ../ was not working correctly (cebe)
  • #193: Changed datetime column type for postgresql from 'time' to 'timestamp' (cebe)
  • #238: Fixed the problem that empty row could be selected in CGridView when there was no data (mdomba)
  • #295: Sometimes CJSON::decode returns null because native json_encode has bugs and returns null. Workaround to continue decoding when result of json_decode is null (luislobo)
  • #381: Fixed the bug that Gii model name input could get misspelled when autocomplete is used (mdomba)
  • #417: CAttributeCollections::mergeWith() does not take into account the caseSensitive (dmtrs)
  • #433: Fixed the bug that Gii model name input autocomplete was not working sometimes (mdomba)
  • #449: CDbHttpSession and CDbLogRoute now use query builder instead of DAO for proper quoting (mdomba, redguy)
  • #454: Removed translation on CDbConnection exception as it was creating an endless loop if the application used CDbCache (mdomba)
  • #517: Rule parameter sub-patterns are not checked correctly (ranvis)
  • #539: Fixed CUrlRule::createUrl() to treat sub-patterns as Unicode as parseUrl() does (ranvis)
  • #553: Criteria of related AR finders was affected after performing find with relational scopes (marcovtwout)
  • #618: Fixed caching of CWebUser::checkAccess() when it is called first time with and second time without $params (cebe)
  • #660: Fixed error when calling CDbCache::getValues (zilles)
  • #697: Fixed WSDLGenerator now generating proper namespace for certain complexTypes (BBoom)
  • #749: CActiveRecord::refresh() did not work in afterSave() for new records, will now always refresh, when db entry exists (cebe)
  • #769: Fixed the bug that $.fn.yiiGridView.getSelection was not working always if a custom CGridView::template was used (mdomba)
  • #772: CHttpRequest::getIsSecureConnection() was failing on some conditions (bulletbee, samdark)
  • #773: CGridView filters now filter on enter key in Internet Explorer (BBoom)
  • #803: Arbitary non-sorting links in CDataColumn's header were not working proper way (resurtm)
  • #827: Fixed the problem that CJuiSliderInput was rendering a name attribute for div element (mdomba)
  • #842: Active Records insert fails in MSSQL if a column has a default value of (NULL) (c-schmitz)
  • #852: Fixed the problem that CActiveForm was not revalidating fields if ajax submit was used (mdomba)
  • #859: Fixed CSort::applyOrder() and CSort::getOrderBy() to use custom table aliases (troch, samdark)
  • #865: CLogRoute called processLogs() even if log array was empty and caused empty emails and log files (cebe)
  • #879: Fixed a possible PHP error caused by CWebUser::restoreFromCookie() in combination with CHttpRequest.enableCookieValidation (kidol)
  • #901: Fixed possible encoding problem on exception (mdomba, samdark, cebe)
  • #1000: Added params to profiling token in CDbCommand::execute() to be consitent with CDbCommand::queryInternal() (cebe)
  • #1045: Building a query with empty array as parameter will not result in a broken sql-string anymore(suralc)
  • Fixed CMenu::isItemActive() to work properly when there is a hash in the item's url (SlKelevro)
  • Added missing return statement to CAuthItem->revoke() (mdomba)
  • CHtml::resolveValue() ignoring of array elements accessor at the beginning of the $attribute argument now works properly (resurtm)
Enhancement:
  • #120: Added ability to set cookies in an object based style without specifying the cookie-name twice (suralc)
  • #136: Added ability to select database connection in Gii model generator (samdark)
  • #157: Added ability to use models with objects implementing ArrayAccess as properties in CHtml::resolveValue (samdark)
  • #165: Allow CCacheDependency to be reusable across multiple cache calls (phpnode)
  • #171: Added support for PUT and DELETE request tunneled through POST via parameter named _method in POST body (musterknabe)
  • #179: CLogger now supports filtering profile timings by multiple & wildcard categories (intel352)
  • #191: Added ability to customize HTML classes of CLinkPager via its public properties (mashingan)
  • #206: Added ability to pass CDbCriteria object as AR relation parameter (samdark)
  • #215: Added tokens to CGridView::updateSelectors to allow adding custom selectors instead replacing only (mdomba)
  • #220: The URL pointing to the Google API in CGoogleApi is now protocol relative (suralc)
  • #237: The tabs of CTabView now support the property 'visible' (DaSourcerer)
  • #255: Sort CArrayDataProvider when elements is CActiveDataProvider or other object (rusmaxim)
  • #266: Add support for HTML5 url, email, number, range and date fields to CHtml (gregmolnar)
  • #267: CDbHttpSession is now able to store binary payload such as the output of the igbinary serializer (DaSourcerer, samdark)
  • #282: Added CCheckBoxColumn::headerTemplate to allow custom headers (mdomba)
  • #286: Added wildcard token to CDateTimeParser (cebe)
  • #294: Added deniedCallback to CAccessControlFilter and CAccessRule to allow forwarding control to a method on denial (luislobo)
  • #342: Added ability to pass parameters for RBAC bizRules from CAccessControlFilter configuration (claudejanz, samdark)
  • #356: Improved extendability of CDetailView by adding method renderItem() (cebe)
  • #369: Added $hashKey to CCache (kidol)
  • #414: Added sort parameter to yiic message command that sorts messages by key when merging (ranvis)
  • #455: Added support for default value in CConsoleCommand::prompt (eagleoneraptor)
  • #551: Added $safe parameter to CJavaScript::encode. If set to true, 'js:' will not be allowed. If you need to pass JavaScript, wrap your code with CJavaScriptExpression instead (samdark)
  • #552: Added support for http-level caching via CHttpCacheFilter (DaSourcerer)
  • #568: CHtml::getIdByName() will now convert spaces to underscore to get proper ID for HTML elements (mdomba)
  • #578: Added extension checks to CMemCache (samdark)
  • #581: Added formatSize method in CFormatter to format file sizes into units of different order - KB, MB, etc (brilyuhns, samdark)
  • #584: Refactored WebAppCommand to be more customizable, added more PHPDoc (samdark)
  • #599: Added case sensitivity check when autoloading classes (qiangxue)
  • #601: added the method loginRequired() to the IWebUser interface (mdomba)
  • #616: CVarDumper is now correctly highligting integer array keys (vernes, samdark)
  • #641: Added support for customizing serialization methods for cache components (DaSourcerer, Qiang)
  • #648: Added filterHtmlOptions property to the CGridColumn component (juban)
  • #652: Added namespace to yiiGridView events, so they can be easily removed by .off() jQuery method (Bethrezen)
  • #673: Changed CClientScript::scripts to be public (mdomba)
  • #675: CDateFormat::format() now returns null if the parameter $time is null (mdomba)
  • #690: Added sender name and proper headers for UTF8 encoding when sending e-mail in SiteController->actionContact() (mdomba)
  • #766: Added 'userId' to $params in CDbAuthManager::checkAccess() and CPhpAuthManager::checkAccess() (cebe)
  • #666: Added property $except to CValidator, a list of scenarios that the validator should not be applied to (resurtm)
  • #839: CListView::renderItems now resolves view file only once (nizsheanez)
  • #938: CFileValidator::sizeToBytes() is now public and available for using in the whole application (resurtm)
  • #943: CDateTimeParser is now able to parse short textual representation of month, e.g. Jan, Jun, Aug (resurtm)
  • #967: Commands from YII_CONSOLE_COMMANDS environment variable are now always added to yiic console application (schmunk)
  • CFileValidator could validate uploaded file by its MIME-type, added $mimeTypes and $wrongMimeType properties (resurtm)
  • Fixed romanian translation to use the better-supported cedilla characters (tudorilisoi)
  • Added default value to CConsoleCommand::confirm (musterknabe)
  • Allowed returning integer values as application exit code in CConsoleCommand actions (cebe)
  • Added third parameter to CHttpCookie to configure the cookie by array (suralc)
  • Added getIsFlashRequest(), proper handling of Flash/Flex request when using CWebLogRoute with FireBug (resurtm)
  • Added CBreadcrumbs::$activeLinkTemplate and CBreadcrumbs::$inactiveLinkTemplate properties which allows to change each item's template (resurtm)
  • Added full-featured behaviors and events CConsoleCommand::onBeforeAction & CConsoleCommand::onAfterAction (Yiivgeny)
  • Added HTML5 history support on ajax requests on CGridView and CListView using History.js v1.7.2-r2 (https://github.com/balupton/history.js) from Benjamin Arthur Lupton (lightglitch)
  • Changed CldrCommand to use medium dateTimeFormat and updated 18n data using newest(6546) CLDR (tanakahisateru)
  • Added CErrorHandler::getHttpHeader() to send correct HTTP error codes (pgaultier)
  • CGridView, only rows in tbody should have hover effect (mdomba)
  • CClientScript::$defaultScriptFilePosition and CClientScript::$defaultScriptPosition for controlling default $position argument for registerScriptFile and registerScript (resurtm)
  • CHttpCookie now implements __toString (suralc)
  • Ability to set namespace for module controllers using CWebModule::controllerNamespace, documentation about using namespaced controllers and modules (samdark)
  • Added possibility to set the container for CHtml::radioButtonList and CHtml::checkBoxList() (pgaultier)
  • Added zii romanian(ro) translation; edited core messages to include proper romanian characters with diacritic marks (tudorilisoi)
  • Added ILogFilter interface as an alternative to using CLogFilter as base class for implementing log filters (cebe)
  • CAssetManager, added $forceCopy property which globally forces publication of asset files and directories (resurtm)
  • WebAppCommand has ability to generate fresh application with git or hg specific files (resurtm)
  • Gii default templates: added additional metadata (PHPDoc) of the variables passed into views for better IDE autocompletion (resurtm)
  • WebAppCommand generated application: added additional metadata (PHPDoc) of the variables passed into views for better IDE autocompletion (resurtm)
  • #1053: CComponent::evaluateExpression will allow using global functions as callbacks (Ekstazi)
Changes:
  • #384: CWebUser::changeIdentity() will now delete old unused session data file (Qiang)
  • #440: Upgraded JQuery UI to 1.8.22 (samdark)
  • #497: Added log component and preloaded it in default console application config in order to properly log errors (samdark)
  • Upgraded jQuery to 1.7.2 (samdark)
  • More unit tests added for CHtml (resurtm)
  • Upgraded bundled markdown parser to v1.2.5 (DaSourcerer)
New:
  • Added TranslationsCommand build command aimed to help translation teams (samdark)

Yii PHP Framework screenshot (481 pix)

Reacties (7)

Ziet eruit als een aardig compleet framework.

Hoe zijn de ervaringen?
Ik heb een jaar geleden een onderzoek gedaan wat voor ons het beste PHP framework zou zijn. Daarbij heb ik deze frameworks uitvoerig vergeleken, na eerst een shortlist gemaakt te hebben uit veel meer frameworks (mooi overzicht hier):
  • CodeIgniter
  • Kohana
  • Yii
  • Zend
Uiteindelijk kwam Yii er als beste uit, daarbij ook gekeken naar wat er nog bij zou komen in de verdere ontwikkeling. Yii kent een goed authenticatie systeem, is erg snel en zoals Webgnome hieronder ook al zegt is de Gii tool handig.
Op PHP Frameworks komt ie (ook) als beste uit de poll.

Binnenkort komt Yii 2.0 uit, die zou nog stukken beter moeten zijn (geen referentie).
Goed! Ik ben nu 4 maanden verder met een webapplicatie dat draait op Yii. Hiervoor had ik alleen ervaring met Zend. Maar ik geef zeker de voorkeur aan Yii. Het is een framework gericht op performance en dat merk je.

Het framework neemt veel werk uit handen en is zeer goed uitbreidbaar. Alhoewel ik vind dat er een matige hoeveelheid documentatie te vinden is, kun je vrij snel de basis leren.

Om je wat verder op te helpen:
- http://www.yiiframework.com/doc/guide/
- http://www.larryullman.co...arning-the-yii-framework/

Ook zijn er een aantal interessante wiki's, waaronder:
- http://www.yiiframework.c...-add-to-update-this-list/
- http://www.yiiframework.com/wiki/?tag=tutorial (overzicht tutorials)

Oh ja! Een van de extensions die je MOET installeren:
- http://www.yiiframework.com/extension/giix/ Giix is een uitbreiding op de toch al handige Gii tool. Maar maakt sommige nog handiger, zoals het updaten van related models in models. Check de code maar ;)

update 16:09 - toevoeging op reactie van bux666
Yii 2.0 wordt volledig opnieuw geschreven op basis van php 5.3 (bron: http://www.yiiframework.com/download/). Voorlopig is daar nog geen releasedatum van bekend.

edit: typo en update

[Reactie gewijzigd door henkbiertank op 30 juli 2012 16:12]

Ik werk nu een paar weken met dit framework en ik ben er wel over te spreken. Het is echt een developers framework zonder toeters en bellen ( en als die er al in zitten je hoeft ze niet te gebruiken ).

een pluspunt vind ik de Gii tool. Hiermee kun je makkelijk model classes, view classes of gehele crud structuren laten maken die je daarna weer kunt aanpassen om je eigen logica toe te voegen. Dit scheelt enorm veel tijd.
Begint misschien ééntonig te worden, maar ook ik gebruik dit framework met plezier voor verschillende professionele webprojecten.
Niet dat ik dit framework gebruik(t) heb, maar als er geen drama over de licentiewijziging bij CodeIgniter (dat overigs ook een fijn framework is) geweest was, zouden de kaarten nu anders liggen.

[Reactie gewijzigd door RoestVrijStaal op 31 juli 2012 14:16]

Hoe verhoudt dit Yii zich tot Symfony 2? Begrijp ik het goed dat Yii nog geen gebruik makt van namespaces?

Op dit item kan niet meer gereageerd worden.



Apple iPhone 6Samsung Galaxy Note 4Apple iPad Air 2FIFA 15Motorola Nexus 6Call of Duty: Advanced WarfareApple WatchWorld of Warcraft: Warlords of Draenor, PC (Windows)Microsoft Xbox One 500GBWebsites en communities

© 1998 - 2014 Tweakers.net B.V. Tweakers is onderdeel van De Persgroep en partner van Computable, Autotrack en Carsom.nl Hosting door True