Как всем уже давно известно, компания 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

Комментарии (16)


  1. Igogo2012
    22.01.2016 12:10
    +6

    Он еще существует? О_О


    1. condor-bird
      22.01.2016 13:31

      Да. К всеобщему удивлению, несмотря на многие вещи, Codeigniter продолжает существовать (так как действительно, жизнью это нельзя назвать). Однако, даже на фоне своих форков, он не умер.


  1. AxelPAL
    22.01.2016 12:22
    +3

    Как-то выглядит странно их затея. Делать по сути новый фреймворк без обратной совместимости и это тогда, когда есть Symfony, Yii2, Laravel5.
    Думаю, кто был на CI3 — либо его и используют, либо перешли на вышеобозначенные фреймворки. 4 версии никому не нужна. ИМХО.


    1. condor-bird
      22.01.2016 13:30
      +1

      Как бы странной не выглядела эта затея, она является вынужденной. В том виде, в котором фреймворк сейчас находится, он по большому счету никому не нужен.
      Что касается обратной совместимости, то она будет не настолько жестокий, что нельзя будет перенести приложение с ветки 3x. Перенос будет возможен, но необходимо будет немного потрудиться :)


    1. SamDark
      22.01.2016 13:35
      +3

      Посмотрим, что у них получится. Может всё будет круто.


      1. condor-bird
        22.01.2016 13:45

        Будем на это надеяться. Основа новой версии вроде во всю пишется в отдельном репозитории. Однако, что странно, пока что там заметны коммиты телодвижений лишь одного из разработчиков.


        1. SamDark
          22.01.2016 13:50
          +1

          Это нормально. Для консистетности один человек выстраивает общую архитектуру собирая мнения остальных. Мы так же делали Yii 2.0. Сначала Qiang после обсуждений заложил архитектуру, потом уже мы подключились и начали фигачить все вместе.


          1. condor-bird
            22.01.2016 14:11

            Тогда это хорошо :) По словам новых владельцев, в разработке основы фрейморвка будут участвовать только компетентные разработчики, что дает надежду на качественный код. Вносить общий вклад сообщество сможет лишь после того, как эта основа будет до конца сформирована.
            Но у CodeIgniter очень слабое комьюнити, с которым невозможно построить конструктивный диалог и обсудить действительно важные вещи. Большинство пользователей совершенно не умеют, или, может быть, не хотят воспринимать какую-либо критику или замечания относительно фреймворка. Попытка предложить или внести что-то новое расценивается чуть ли не как всемирный заговор. Зачем, ведь все и так хорошо. Зачем что-то менять. Даже если бы фреймворк работал на php4, то всех бы и это устраивало. Поэтому порой возникает чувство, что это недалекие люди.
            Со стороны разработчиков наблюдается немного другое отношение. Любые предложения и пожелания они приветствуют. Это уже очень приятный момент.


  1. SONce
    22.01.2016 12:38
    -3

    До сих пор все пишу на двойке, все прекрасно работает без каких либо проблем.


    1. condor-bird
      22.01.2016 13:29

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


  1. calg0n
    22.01.2016 13:29
    +1

    Предлагаю Технологическому институту Британской Колумбии похоронить сий фреймворк со всеми почестями. Он был популярен лет 10 назад, но потом сильно отстал в плане поддержки и скорости внедрения новых фич.


    1. SamDark
      22.01.2016 13:36

      Разве попытаться догнать не вариант?


    1. condor-bird
      22.01.2016 13:38

      Четвертая версия как раз должна будет встать на правильный путь и хотя бы догнать существующие фреймворки. Если ВСІТ действительно решили серьезно заняться развитием фремворка, то они будут стараться не натыкаться на грабли предыдущих лет.


      1. calg0n
        22.01.2016 13:41

        Поживём — увидим


    1. sefus
      22.01.2016 14:13
      +1

      Как ни странно, популярность у него не падает, не смотря на все его недостатки и отсталость. CI до сих пор держится в трендах php-проектов на гитхабе и за месяц набирает звезд больше, чем тот же Yii или symfony.


      1. condor-bird
        22.01.2016 14:30

        Да, но в основном его очень много используют за рубежом: Индонезия, Индия, Филиппины и т.д. В России наверное, я так думаю, на нем уже не так много разрабатывают как раньше. По крайней мере, действительно больших коммерческих проектов на нем не видно.