Переход к официальным ресурсам:      Codeigniter4 / Документация / Github / Форум / CodeIgniter3
Привет! В настоящий момент я временно прекратил перевод документации по причине того, что она она содержит целый ряд неточностей, а также еще дорабатывается со стороны разработчиков. Если ты заинтересован в изучении фреймворка CodeIgniter 4, то приглашаю тебя на свой канал на YouTube (Перейти на канал), где я более подробно выкладываю занятия по данному фреймворку.


Обновление для версий 3.х

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

Команда разработчиков постаралась максимально сохранить всё то, за что многие программисты любили CodeIgniter 3. Его простоту, лаконичность, лёгкость и доступность, однако сама реализация ядра затронула очень многие компоненты.

В этом разделе документации я постараюсь привести перечень наиболее значимых изменений, которые были сделаны. Также, обращаю твое внимание на то, что еще не все библиотеки из CodeIgniter 3 были переписаны и перенесены в новую версию.

Пространство имён

Минимальной версией языка PHP теперь является 7.2 и практически весь код использует пространство имён, кроме Хэлперов.

Структура фреймворка

  • В Codeigniter 4 появилась новая папка /public, которая будет являться корневой директорией для твоего проекта;
  • Появилась и еще одна новая папка /writable, предназначенная для хранения таких файлов, как: кеш, логи и сессии;
  • Директория /application была переименована в /app и часть поддиректорий из неё были перенесены в папку /writable;
  • Больше не существует директории /application/core, т. к. в новой версии реализован иной механизм для расширения компонентов.

Управление загрузкой классов

  • Ты можешь сам определять загрузку классов в зависимости от структуры приложения, включая поддержку модели "HMVС";
  • Классы подгружаются только там, где это необходимо, а загрузка остальных компонентов осуществляется через Services;
  • CodeIgniter 4 больше не использует "суперобъект" и все ссылки на компоненты фреймворка "волшебным" образом становятся свойствами контроллера;
  • Автозагрузчик фреймворка автоматически загружает классы, размещенные в соответствии со стандартом PSR4, используя App и System как верхний уровень пространства имён. Помимо этого, существует подгрузка классов через autoload Composer'a и даже реализован "интеллектуальный" метод поиска и загрузки моделей и библиотек, если они размещены в соответствующих папках вне пространства имён.

Контроллеры

  • Расширение контроллеров теперь происходит через \Codeigniter\Controller вместо CI_Controller;
  • Теперь нет необходимости в обязательном объявлении конструктора родительского класса;
  • Реализованы два объекта запросов и ответов (Request и Response) более функциональные, чем это было в Codeigniter 3;

Модели

  • Расширение моделей теперь происходит через \CodeIgniter\Model вместо CI_Model;
  • Модели в Codeigniter 4 имеют намного больше возможностей, включая автоматическое соединение с базой данных, основные CRUD операции, встроенные механизмы валидации и автоматическое построение пагинации.
  • В CodeIgniter 4 был добавлен новый класс сущностей Entity для более расширенного сопоставления данных с таблицами базы данных;
  • Вместо $this->load->model(x); теперь используется $this->x = new X(); учитывая пространство имен для твоих компонентов;

Представления

  • Все твои представления продолжают работать как и прежде, но теперь их вызов происходит через echo view(x); вместо $this->load->view(x);;
  • Встроенный парсер шаблонов по-пержнему остался, но был существенно улучшен.

Библиотеки

  • Ты по-прежнему можешь размещать классы приложения в директории app/Libraries, но желательно этого не делать;
  • Работа с библиотекой теперь осуществляется через $this->x = new X(); вместо $this->load->library(x); учитывая пространство имён.

Хэлперы

  • Хэлперы остались такими же, как и прежде, но некоторые из них были значительно упрощены;

Расширение возможностей фреймворка

  • Теперь тебе не требуется директория core для хранения MY_x классов для расширения и замены компонентов;
  • Теперь тебе не требуются MY_x классы внутри папок библиотек, чтобы расширить или заменить какие-то части фреймворка;
  • Реализуй собственные классы, где тебе это будет удобно и регистрируй методы этих классов в app/Config/Services.php, чтобы переопределить стандартное поведение фреймворка.

 


Комментарии к разделу:

Пока ещё никто не оставил своего комментария. Оставить свой!

Добавить комментарий к статье:


Ваше имя:
Ваша почта:

  Закрыть