This document will help you upgrading from a LUYA Version into another.
As part of this release all module will be renamed. Frontend and admin module will be merged together. All module classes will get the prefix luya
. So in order to upgrade your current modules, filters, blocks, blockgroups, models, etc. you have to rename a lot of classes of your project files:
old | new |
---|---|
cmsadmin\... |
luya\cms\admin\... |
cms\... |
luya\cms\frontend\... |
admin\... |
luya\admin\... |
Search and replace examples:
search | replace |
---|---|
cms\helpers\TagParser |
luya\TagParser |
cms\helpers\Url |
luya\cms\helpers\Url |
cmsadmin\base\Block |
luya\cms\base\TwigBlock |
\admin\ngrest\base\Api |
\luya\admin\ngrest\base\Api |
\admin\Module |
\luya\admin\Module |
\admin\ngrest\base\Model |
\luya\admin\ngrest\base\NgRestModel |
\admin\ngrest\base\Controller |
\luya\admin\ngrest\base\Controller |
\admin\base\Filter |
\luya\admin\base\Filter |
\admin\base\RestController |
\luya\admin\base\RestController |
\admin\base\Controller |
\luya\admin\base\Controller |
\admin\ngrest\base\ActiveWindow |
\luya\admin\ngrest\base\ActiveWindow |
- #970: Renamed rest classes
luya\rest\BehaviorInterface
,luya\rest\BehaviorTrait
,luya\rest\BaseActiveController
- #972: Renamed all modules to match luya prefix as described from the table above.
#976
: Removed$isCoreModule
property, replaced widthCoreModuleInterface
.#974
: Removed$isAdmin
property, replaced withAdminModuleInterface
.#875
: TagParser has been renamed toluya\TagParser
instead ofcms\helpers\TagParser
and is now a core class.- #806: Renamed to
configs/server.php
toconfigs/env.php
, new projects will also have the env prefix for the config names.
The tag for internal links has changed from link[32]
(where 32 is the id of the linked page) to menu[32]
. To replace all occurrences, you can search and replace within the field json_config_values
of the table cms_nav_item_page_block_item
with the following regular expression:
Search for: link\[([0-9]+)\]
Replace with: menu[$1]
Be sure to make a backup of the database beforehand!
- #940: The
admin\base\Filter
class for all filters requers now a public static identifier() method instead of a none static method. - #907: Removed the public attribute
$extraFields
in order to prevent confusings. OverrideextraFields()
instead inadmin\ngrest\base\Model
.
#860
: As part of using the Yii2 imagine Extension we removed theResize
-Effect Filter chain and renamed theThumbnail
-Effect optiontype
tomode
.#877
: all NgRest base model does have functionpublic function ngRestApiEndpoint()
and defines the api endpoint. This method is now static. So usepublic static function ngRestApiEndpoint()
instead.#875
: As part of the tag Parser rework, the helper method to parse luya tags (links, etc.)cms\helpers\Parser::encode($text)
has been changed tocms\helpers\TagParser::convert($text)
.
We have moved all repositories to the new HQ of LUYA, luyadev
instead of zephir
. In order to to update your packages, remove zephir
and replace with luyadev
in your composer require section.
-
#833
: Command controller in console is deprecated use default route behavior insteadmodule/controller/action
, run action will find the module commands namespace controllers if available in the config. -
#818
: Since 1.0.0-beta6 we have added the versions concept of luya pages you have to run once the command./vendor/bin/luya cmsadmin/updater/versions
after executing the migration process. -
#807
: The NgRest plugin system has been rewritten to use the yii component base class, as therefore some plugin configuration has changed as the are not using the constructor any more instead are configurable via base object of the class properties. changes:selectClass
has ben renamed toselectModel
.- constructor calls are not allowed and has to be defined as following:
- ['selectModel', 'modelClass' => path\to\Genres::className(), 'valueField' => 'id', 'labelField' => 'title']]
- ['selectArray', 'data' => [1 => 'Male', 2 => 'Female']]
- ['checkboxList', 'data' => [1 => 'Male', 2 => 'Female']]
- ['checkboxRelation', 'model' => User::className(), 'refJoinTable' => 'admin_user_group', 'refModelPkId' => 'group_id', 'refJoinPkId' => 'user_id', 'labelFields' => ['firstname', 'lastname', 'email'], 'labelTemplate' => '%s %s (%s)']
-
#758
: Due to replacement of twig, cms layout files must be a phpfile instead of a twig file. The following filemain.twig
would be newmain.php
, file content compare: old:<div>{{placeholders.content}}</div>
new:
<div><?= $placeholders['content']; ?></div>
-
#771
: As we have removed the LUYA module as module and use it as library you have to remove theluya\Module
in your application. But when you are using the CMS-Module you must bootstrap it instead, by adding a new entry in your application config settings:'bootstrap' => [ 'cms', ],
-
#809
: Soft delete admin trait public static methodSoftDeleteValues
has ben renamed toFieldStateDescriber
. -
#791
: As we removed the LUYA module, the luya core library is now availabel trough the composer packageluyadev/luya-core
instead of usingzephir/luya
. You can also remove the luya composer package from your require section as it should be defined as dependencie of the modules. As part of this change you now have tobootstrap
the cms module in the bootstrap section of your config. -
#780
: In terms of Yii2 controller view render behavior consistency:- removed
$useModuleViewPath
property ofluya\web\Controller
. - removed
$controllerUseModuleViewPath
property ofluya\base\Module
replaced with$useAppViewPath
.
- removed
-
#777
The suffix (ActiveWindow) is now removed from the folders where the view files are located:- before:
MyTestActiveWindow
folder for view files:views/<locator>/mytestactivewindow
- after:
MyTestActiveWindow
folder for view files:views/<locator>/mytest
.
- before:
-
#822
:#822
zaa-checkbox-array renamed variables.changed options from zaa-checkbox-array in ngrest directive from: options.items[] = { "id" : 1, "value" => 'Label for Value 1' } to: options.items[] = { "value" : 1, "label" => 'Label for Value 1' }