Система складання фронтенда в CleverStyle Framework або чому вам може бути не потрібна кастомний

CleverStyle Framework всіляко допомагає розробнику не тільки на сервері, але і на фронтенде. Я про це згадував у попередніх статтях, але ніколи не вдавався в подробиці того, як саме все влаштовано під капотом.
Дана стаття буде зануренням в подробиці роботи зі статикою для фронтенда, починаючи від того, як визначаються файли потрібні на сторінці і закінчуючи оптимизациями доставки статики зразок HTTP/2 Server Push. Не забудемо і про те, чому з використанням CleverStyle Framework можна обійтися без кастомних системи складання і при бажанні інтегрувати таку систему складання процеси фреймворка.
Ця стаття спеціально випускає з уваги інтеграцію Bower/NPM і RequireJS, це буде тема окремої статті в недалекому майбутньому.
Читати далі →

Реліз CleverStyle Framework 4

якось не виходило писати більше однієї статті від початку нової гілки (частина 1, частина 2, частина 3), але ось знову є чого цікавого розповісти, адже вийшов перший реліз серії 4.х.

Коротко про все

Перше, що хотілося б сказати — проект був перейменований з CleverStyle CMS в CleverStyle Framework. Нарешті! Більше не буде плутанини між назвою і змістом.

Якщо серія 2.х почалася з істотних змін на стороні сервера, а 3.х з порівнянних змін на клієнті, 4.х приносить поліпшення скрізь.

На сервері істотно збільшена швидкість роботи, при тому що це full-stack фреймворк, використовуючи HTTP сервер заснований на ReactPHP можна отримати швидкість генерації сторінки НИЖЧЕ 1мс, швидше стала генерація HTML в типових сценаріях.
Так само додалася зручна підтримка вкладених структур у файлах перекладів, додалася підтримка SQLite, PostgreSQL, підтримка роботи в якості PSR7 Middleware (ініціалізація з PSR7-сумісного request об'єкта і видача результату в PSR7-сумісний response об'єкт) і пов'язані з цим зручні абстракції в самому ядрі.

На фронтенде повсюдно використовується RequireJS, ряд бібліотек, безумовно що завантажуються на фронтенде, тепер завантажуються тільки коли безпосередньо потрібно, додані оптимізації для швидкого відтворення першого кадру (first paint).

На стику backend та frontend оптимізації побудови кешу статики (CSS/JS/HTML), HTTP/2 Server push,
Link: <preload>
та багато іншого.

В цілому система виглядає як хороший гібридний (не чисто микроядерный, але і не жирний такий) full-stack php фреймворк.

Як завжди, не обійшлося без поліпшення метрик коду, наприклад, оцінки Scrutinizer:)

Читати далі →

Реалізація Server Push для Nancy

У цій статті я хочу розповісти про свого реалізації патерну під назвою Long Polling для фреймворку Nancy. Кодом мого модуля вже більше чотирьох років, протягом яких він успішно працював у ряді проектів на ASP .Net MVC. На цьому тижні я вирішив оформити його у вигляді модуля Nancy і викласти на гитхаб для загального блага, оскільки аналогічного рішення знайти мені не вдалося.

З допомогою мого модуля буквально за хвилину і парою простих дій можна отримати надійний канал зворотного зв'язку від сервера до браузеру. Хочете дізнатися подробиці?

Читати далі →