FrontEnd контроллеры в OctoberCMS

В OctoberCMS нет концепции frontEnd контроллеров. Иными словами, идеология этой CMS не подразумевает возможность просто создать некий ProductController с несколькими action для обслуживания маршрутов Route::method('product/{id}', 'ProductController@show'). Вместо этого предлагается использовать компоненты плагинов. Именно компоненты являются формой frontEnd контроллеров.

Алгоритм получается следующий:

  • Создаем плагин
  • Разрабатыаем функциональность как компонент плагина
  • Создаем страницу CMS, прописываем нужный URL
  • Прицепляем к странице компонент
  • На нужном URL получаем функциональность

Альтернативой идеологии OctoberCMS является традиционные routes из laravel. Samuel Georges, один из создателей OctoberCMS, опубликовал пример плагина, который показыает как это работает. Вкратце:

  • Создаем плагин
  • В корень кладем файл routes.php, где регистрируем маршруты.
    Route::get('/welcome', 'authorName\pluginName\WelcomeController@index');

    Если что-то не работает через routes.php, то в первую очередь следует добавить 'middleware' => 'web'

  • В корне создаем контроллер WelcomeController.php
namespace authorName\pluginName;
use Illuminate\Routing\Controller;

class WelcomeController extends Controller
{
    /**
     * Show 'Hello World' message.
     *
     * @return Response
     */
    public function index()
    {
        return 'Hello World';
    }
}
  • Прикручиваем Response::view и наслаждаемся результатом

Routing initialization on octobercms.com

Похожие записи