CodeIgniter 4



Як всім вже давно відомо, компанія 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

Джерело: Хабрахабр
  • avatar
  • 0

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.