CodeIgniter 4. PSR-4. Произвольная MVC

CodeIgniter

По умолчанию CodeIgniter все контролёры размещает в одном каталоге, что не всегда удобно с точки зрения организации файлов. В некоторых случаях удобней сгруппировать файлы в одном подкаталоге. Например подкаталог в App/Controllers. Поскольку CodeIgniter поддерживает PSR-4, то сможет с ним корректно работать. Но нужно учитывать некоторые тонкости.

PSR-4 уже общепринятый стандарт, поэтому желательно сразу разобраться как с ним работать. Это очень просто. Есть некий базовый каталог, который в разных модулях или фреймворках указывает на начальную точку подключения файла класса. У класса всегда задаётся namescape, который ведет отсчет от базового каталога и до каталога файла.

Сам же файл класса всегда совпадает с именем класса (с учетом регистра). По стандарту форматирования php-кода имя класса начинается с большой буквы, соответственно и файл. Рассмотрим пример:

namespace App\Admin\users;
class Profile ...

Читать дальше →

CodeIgniter 4. Роутинг. Формы. REST

CodeIgniter

Работа CodeIgniter базируется на роутинге, который принимает входящий url-адрес и выполняет подходящий контролёр. До этого мы использовали «автороутинг», когда первый сегмент адреса совпадал с именем контролёра. Но в большинстве случаев такая схема слишком примитивная, поэтому нужно будет настраивать роутинг на адреса, которые не совпадают с файлом контролёра.

Например мы хотим сделать адреса вида example.com/pages/about, где about может меняться произвольно. Формально мы можем сделать контролёр Pages и в нём разместить только метод index(), где и «перехватывать» второй сегмент адреса. Однако мы всё-таки решим эту задачу «по взрослому» — научимся настраивать роутинг.

Читать дальше →

CodeIgniter 4. Views

CodeIgniter

Усложним наше приложение. Пусть это будет несколько статичных html-страниц, например about и hello. Сделаем так, чтобы html-шаблон был разбит на части.

Основа любого фреймворка — роутинг — именно через него пропускается входящий url-запрос и дальше решается какой контролёр будет запущен. В CodeIgniter используется «классический» вариант роутинга

http://example.com/[controller-class]/[controller-method]/[arguments]

То есть если мы захотим обслужить адрес http://example.com/about будет достаточно сделать контролер About.php. Это что-то вроде «автороутинга», где CodeIgniter сам подхватывает подходящий файл и класс.

Читать дальше →

CodeIgniter 4. Основы. Установка

CodeIgniter

Скоро планируется релиз CodeIgniter 4 и я подготовил несколько статьей, посвященных этому php-фреймворку. Обычно, когда речь заходит о CodeIgniter, то возникают двоякие чувства: с одной стороны это легендарный фреймворк, который послужил хорошим стартом для многих проектов, а с другой, его история показывает, что случается с теми разработками, которые не получают должной поддержки и развития.

CodeIgniter 4 — это совершенно новая разработка, поэтому не стоит её рассматривать в связке со старыми 1/2/3 версиями. Команда разработчиков хорошо потрудилась — получился современный и качественный php-фреймворк.

Читать дальше →

Шаблон Builder (Строитель)

ООП в PHP

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

Смысл Строителя в том, чтобы иметь возможность получить конечный результат в различном виде. Например есть некий «Продукт», который может быть получен разными «Строителями» (один делает одно, другой другое). И есть класс, который управляет строителями — «Директор».

Исходный рабочий код, вы всё также найдёте на гитхабе. Рекомендую вначале с ним бегло ознакомиться и держать под рукой по мере объяснений ниже. :-)

Читать дальше →

Перейти к странице: