Руководство по обновлению



Обновление до 8.0 с 7.x

Мы пытаемся задокументировать все возможные критические изменения. Некоторые из этих изменений относятся к внутреним обращениям, по этому только часть этих изменений может фактически повлиять на ваше приложение.

Обновление зависимостей

В вашем файле composer.json обновите зависимость orchid/platform до ^8.0

Изменения экрана

Методы маршрута

Не использованые методы были удалены. Больше нельзя обратиться к экранам через методы PUT|PATCH|DELETE, обращение должно использовать GET|POSTS для получения/отправки данных.

Method           | URI                                  | Name
-----------------+--------------------------------------+--------------
GET|HEAD|POST    | dashboard/idea/{method?}             | platform.idea

Подмена данных (Acync)

Ожидание {argument?} было удалено из адресной строки. Теперь для обращения используеться отдельный маршрут:

$this->router->post('async/{screen}/{method?}/{template?}', [AsyncController::class, 'load'])->name('async');

Конструктор

В передаче обьекта request и вызова родительского класса больше нет необходимости. Определение теперь выглядит так:

class PublicationScreen extends Screen
{
    public function __construct(Locator $locator)
    {
        $this->locator = $locator;
    }
}

Хлебные крошки

Пакет davejamesmiller/laravel-breadcrumbs заменён на tabuna/breadcrumbs и должен быть установлен автоматически при обновлении зависимостей.

Примечание. Может потребоваться удаление загрузочных файлов кэша в директории bootstrap/cache.

Синтаксис нового пакета позволяет указывать хлебные крошки прямо в определнии маршрута:

Route::screen('example', ExampleScreen::class)
    ->name('platform.example')
    ->breadcrumbs(function (Trail $trail) {
        return $trail->parent('platform.index')->push(__('Example screen'));
    });

Так же, вы можете продолжить использовать отдельный файл для них. Для этого, необходимо загрузить его в сервис провайдере:

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap the application events.
     *
     * @return void
     */
    public function boot()
    {
        require base_path('routes/breadcrumbs.php');
    }
}

Если вы использовали полные имена классов, то необходимо произвести замену на аналогичные:

use Tabuna\Breadcrumbs\Breadcrumbs;
use Tabuna\Breadcrumbs\Trail;

Редактор TinyMCE

Html редактор был удалён из стандартной поставке, для его использование необходимо установить новую зависимость orchidcommunity/tinymce. А так же изменить пространство имён на

use OrchidCommunity\TinyMCE\TinyMCE;

Модель настроек

Модель настроек так же была удалена. Данные хранящееся в базе данные, не будут удалены автоматически. Для их удаления необходимо выполнить следующий SQL код:

DROP TABLE settings;

DELETE FROM migrations
WHERE migration = '2015_12_02_181214_create_table_settings';

Иконки

Отображение иконок было переработано с font на SVG формат. Теперь методы ->icon принимают не значение css которое необходимо установить, а название файла. В большинстве случаев необходимо только убрать префикс icon-.