Frameworks a lot - he's one!
Привіт, Хабр!) Тим, хто поки не має уявлення, раджу почитати попередню статті А якщо коротко, то мова піде про оточенні для локальної веб-розробки, яка повністю готово для запуску більшості фреймворків та cms. Запускайте Symfony, Laravel, Yii2, та інші вреймворки легко! За принципом клонував -> запустив. Забудьте про постійні налаштування веб-сервера і робочого оточення. Все що вам потрібно вже є в Stacker
Основні гасла проекту
Їх багато — він один!
Все просто, не потрібно міграцій!
Швидко розгорнув і почав працювати!
Вистачить налаштовувати! Пиши код!
Тримай зоопарк під Docker, нехай хостова машина залишається чистою!
Читати далі →

Ви напевно думаєте, що писати на php — це просто. Та «hello, world» виглядає приблизно так:

<?php
echo 'Hello, world!';

Звичайно, чого ще очікувати від мови з низьким порогом входу. Ну так, саме так і було раніше. Багато років тому. Але тепер, у 2017 році ніхто вже так не робить. Давайте розглянемо, чому і спробуємо побудувати наше більш реалістичне hello-world програму по кроках, а їх, скажу відразу, вийшло не мало.


Читати далі →

PHP-Дайджест № 102 – цікаві новини, матеріали і інструменти (1 – 12 лютого 2017)


Пропонуємо вашій увазі чергову підбірку з посиланнями на новини та матеріали.
Приємного читання!

Читати далі →

PHP-Дайджест № 101 – цікаві новини, матеріали і інструменти (15 – 29 січня 2017)



Пропонуємо вашій увазі чергову підбірку з посиланнями на новини та матеріали.
Приємного читання!

Читати далі →

PHP-Дайджест № 100 – цікаві новини, матеріали і інструменти (1 – 15 січня 2017)



Пропонуємо вашій увазі чергову підбірку з посиланнями на новини та матеріали.
Приємного читання!

Читати далі →

LexikFormFilterBundle, створюємо фільтруючі форми ще швидше

Відразу, коротко і по справі про те, які типи фільтрів ви зможете використовувати з коробки з вже створеної кастомізацією:
BooleanFilterType
CheckboxFilterType
ChoiceFilterType
CollectionAdapterFilterType
DateFilterType
DateRangeFilterType
DateTimeFilterType
DateTimeRangeFilterType
DocumentFilterType
EmbeddedFilterTypeInterface
EntityFilterType
NumberFilterType
NumberRangeFilterType
SharedableFilterType
TextFilterType

Судячи з назв повинно бути приблизно зрозуміло, що конкретно робить той чи інший фільтр, при цьому нічого не заважає створювати свої власні фільтри або розширювати вже існуючі.

Читати далі →

PHP-Дайджест № 99 – підсумки 2016 року та добірка цікавих посилань (11 – 25 грудня 2016)


За традицією, підіб'ємо підсумки року і згадаємо найбільш значущі події в світі PHP, яких, на щастя, було чимало. І звичайно ж, добірка з посиланнями на свіжі матеріали за останні два тижні.

З наступаючим Новим роком! Приємного читання.

Читати далі →

Symfony — комбінуємо GridFS файли з ORM сутностями

попередній статті я писав про завантаження файлів в GridFS. Там ми створили MongoDB документ з властивістю $file, анотованим @MongoDB\File. Так як ORM суті я використовую частіше, ніж ODM документи, я шукав простий спосіб отримати доступ до документа із сутності.

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

Читати далі →

Коротко про архітектуру компонента Symfony Config



Компонент Symfony 2 Config призначений для роботи з конфігураційними файлами і надає наступні можливості:

  • Підтримка деревоподібної структури конфігурації
  • Абстракція складових частин конфігурації, з яких проводиться її завантаження (ресурси, завантажувачі ресурсів і т. д.)
  • Підтримка довільної кількості складових частин конфігурації і деяких правил по збірці і об'єднанню
  • Кешування прочитаної конфігурації і автоматична її пересборка при зміні одного з вихідних файлів
  • Валідація конфігурації за різними правилами і детальна інформація про помилки парсинга
Офіційна документація з цього компоненту містить детальну інформацію щодо його використання. А ми давайте подивимося на те, як влаштований цей компонент всередині.

Читати далі →