With Twill 3.x some files and classes are moved.
What changed:
resources/views/admin
folder should be renamed resources/views/twill
routes/admin.php
file should be renamed to routes/twill.php
Namespace changes:
1app/Http/Controllers/Admin -> app/Http/Controllers/Twill2app/Http/Requests/Admin -> app/Http/Requests/Twill
Twill database table names are also updated to be prefixed by twill_
.
We provide an automated upgrade path using the commands explained below. This will take care of:
Always make sure your git state is clean before attempting an update so you can roll back.
1php ./vendor/area17/twill/upgrade.php
The admin url is now by default /admin instead of a subdomain. Please check the docs to change this to a subdomain if you were relying on that.
On top of that, this is now more "loose" and does not require the exact url. However, you can set it back to being strict using:
ADMIN_APP_STRICT=true
If you are relying on Quill.js specifics (like css classes), use 'type' => 'quill'
on your wysiwyg
form fields.
Previously withVideo
was true by default, if you relied on this you have to update these media fields to
'withVideo' => true
.
These are now rendered directly, you can change this by updating config twill.glide.original_media_for_extensions
to an empty array []
The default for media and file libraries are now local and glide, if you relied on the default config for S3 and Imgix
then you now need to specify it in your .env
.
The renderBlocks
method now has the mapping as first argument.
The renderBlocks
method now by default will NOT render the nested repeaters below the block. If you relied on this
you now need to update to renderBlocks([], true)
In Twill 2 scopeForBucket would return a collection of featured items. However, as the name illustrates, this is not a scope.
In Twill 3 scopeForBucket
is an actual scope and getForBucket
is a helper to get the items directly.
Model crops are now a global config, if you do not need model specific crops you can manage them globally from your config.
The default now is bigIncrements and bigInteger. If you relied on these functions for custom logic you can add them to your own codebase. For reference the functions are below:
1if (!function_exists('twillIncrementsMethod')) { 2 /** 3 * @return string 4 */ 5 function twillIncrementsMethod() 6 { 7 return config('twill.migrations_use_big_integers') 8 ? 'bigIncrements' 9 : 'increments';10 }11}12 13if (!function_exists('twillIntegerMethod')) {14 /**15 * @return string16 */17 function twillIntegerMethod()18 {19 return config('twill.migrations_use_big_integers')20 ? 'bigInteger'21 : 'integer';22 }23}
If you are overriding methods in your repository/controller or request classes. They may now need typed arguments and return types.
This is an ongoing effort and will continue to occur as 3.x evolves (but not in bugfix releases).