Как всем уже давно известно, компания EllisLab — создатели популярного фреймворка CodeIgniter, передали свое детище Технологическому институту Британской Колумбии (British Columbia Institute of Technology — ВСІТ). 

Многие полюбили CodeIgniter именно за маленький размер, быструю работу, отличную документацию. Возможно, именно поэтому его ошибочно называют микро-фреймворком. На это его создатели отвечают: Нет. CodeIgniter всегда был полноценным фреймворком.

Однако, в какой-то момент, бывшие владельцы и создатели EllisLab перестали уделять ему внимание. Все это способствовало тому, что CodeIgniter застрял в развитии. 
Переход в ВСІТ дал надежду на новую жизнь фреймворка и возобновление его развития.

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

В ходе обсуждений было много предложений и замечаний, в большей степени конструктивных и осмысленных. Но многие предложения ставились под сомнения и в подавляющем большинстве давали неоднозначность в своей необходимости.
Например, были обсуждения о отсутствии ORM, скаффолдинга, авторизации, встроенной поддержки AJAX, генерация кода(аналогичный GII в Yii –придумали злодеи), интеграции компонентов из других фреймворков (если они не имеют зависимостей) и т.д..т.п. и их необходимости в функционале фреймворка. 

Коротко об самых главных изменениях:

  • PHP 7
  • Namespace
  • Новый роутинг
  • PHPUnit
  • PSR-4
  • Etc.etc


Основные изменения ядра


С того момента, как был построен CodeIgniter прошло достаточно много времени и сообщество PHP изменилось. Многие из основных элементов, которые существуют в CodeIgniter уже давно технически и морально устарели. Это означает, что система нуждается в полной перезаписи. Основной акцент будет делаться на современный, чистый и понятный код. Все что не является базовой основой, не будет или будет, но не сразу, реализовано. 
Впереди еще будут большие изменения, однако Team CI считают, что они могут быть сделаны таким образом, что подготовит всех к переходу на новую версию безболезненно. Все изменения помогут сделать CodeIgniter еще более простым, быстрым и гибким.
 

  • Приложение и системные каталоги будут работать с PSR-4 автозагрузкой. CodeIgniter будет использовать свою собственную автозагрузку с интеграцией Composer для тех, кто в нем нуждается.
  • Отдельные компоненты фреймворка будут в некотором роде упакованы, поэтому их можно будет использовать отдельно за пределами CodeIgniter в других проектах. (Например, точно так же как компоненты Symphony или Zend).
  • Целый ряд библиотек теперь не будут частью ядра фреймворка и будут использоваться по желанию в качестве дополнительных библиотек: Typography, FTP, ZIP и XML-RPC.
  • Корзина, JavaScript, Unit_test и Javascript, Unit_test, и Trackback библиотеки будут удалены.


PHP 7

Четвертая версия CodeIgniter будет на PHP 7. Теперь это позволит воспользоваться новыми возможностями языка.
 

Маршрутизация


Система маршрутизации будет обновлена и оснащена способностью “магического роутига” (англ. “magic routing”) и “магического путя” (англ. “magic way”). Это позволит отображать URl непосредственно в контроллере/методе и индивидуальный маршрут в файле роутинга.

Фрагмент кода из файла роутинга:

$routes->setDefaultNamespace('');
$routes->setDefaultController('Home');
$routes->setDefaultMethod('index');
$routes->setTranslateURIDashes(false);
$routes->setAutoRoute(true);

// We get a performance increase by specifying the default
// route since we don't have to scan directories.
//$routes->add('/', 'Home::index');
$routes->add('blog', 'Blog\Controllers\Blog::index');



Пакеты / модули

Пакеты и модули не будут использоваться. Это только потому, что можно будет использовать namespace и обрабатывать те же самые вещи.
Фрагмент кода из файла конфигурации, где используется namespace
 

<?php namespace App\Config;
use CodeIgniter\Config\BaseConfig;
class AppConfig extends BaseConfig


Тестирование

Для тестирования будет использоваться PHPUnit. Все необходимые инструменты, необходимые для тестирования Ваших приложений уже будут готовы для использования.
 

Обратная совместимость


К сожалению, для старых проектов CodeIgniter будет нарушена совместимость. Team CI считает, что это лучшее решение для будущего фреймворка и разработчиков, которые его используют. Все серьезные изменения позволят заложить основу для работы на много лет вперед и обеспечить современность этой основе. 
Team CI постарается облегчить переход со старых версий фреймворка, настолько, насколько это возможно сделать. Разработчики обещают сделать все возможное, чтобы сохранить то, что сделало CodeIgniter таким популярным на протяжении многих лет. 
 

Этапы разработки CodeIgniter 4

Этап 1 — Первый этап будет посвящен основе, ядру фреймворка, его основным и необходимым для полноценной работы компонентам.
 

  • Autoloader
  • Dependency Injection
  • Logging
  • Exception Handling
  • HTTP Request/Response Layers (or Input/Output)
  • Routing
  • Controllers
  • Models
  • Database Layer
  • Config
  • Security


Этап 2 — Второй этап фокусируется на предоставлении и совершенствовании существующих классов и функций. 
 

  • The helpers
  • Language/Localization features
  • Caching
  • Email
  • Encryption
  • Form Validation
  • Image Library
  • Pagination
  • Uploader
  • Sessions
  • Views
  • Debugging and Profiling Tools


Этап 3 — Третий этап включает в себя работу над дополнительным функционалом.
 

  • FTP
  • XML-RPC
  • Zip
  • Typography
  • Template Parser

 

Когда выйдет CodeIgniter 4?


Как только, так сразу :) Разработчики обещают, что альфа-версия фреймворка выйдет в свет уже в 2016 году. Когда именно, пока что сложно сказать. Точные сроки будут меняться в зависимости от процесса разработки. 

Поклонники CodeIgniter в восторге, что смогут уже в скором времени использовать свой любимый фреймворк в совершенно новом виде с множеством улучшений.

Под CodeIgniter4 создан отдельный репозиторий на GitHub. На данный момент, команда CI не принимает общественный вклад, пока не будет сформирована достаточно стабильная основа фреймворка, и ведет разработку самостоятельно. 
Однако все конструктивные идеи и пожеланию учитываются и приветствуются!
 

Что будет с CodeIgniter 3x?


Разработчики обещают поддерживать ветку CodeIgniter 3x, которая почти мертва, некоторое время: осуществлять исправления совместимости с PHP 7, а также делать исправления мелких ошибок и уязвимостей в системе безопасности фреймворка. 
 

Ссылки по теме:


CodeIgniter Wikipedia: ru.wikipedia.org/wiki/CodeIgniter
CodeIgniter 4 Proposed Roadmap: forum.codeigniter.com/thread-62615.html
CodeIgniter 4 Essentials: forum.codeigniter.com/thread-61641.html
CodeIgniter 4 — Roadmap Process: forum.codeigniter.com/thread-61640.html
CodeIgniter 4 Deferable Features: forum.codeigniter.com/thread-61643.html