Размещение проекта на Symfony framework на сервере

Как вы знаете с уроков, публичная директория Symfony framework по умолчанию web/, а рядом с ней лежат директории фреймворка. Это значит, что для нормальной работы и красивых адресов DocumentRoot на сервере должен быть настроен именно на папку web/. Но это не всегда удобно и даже не всегда возможно на хостингах. В большинстве случаев у вас не будет возможности править DocumentRoot.

Растягивание блока на пустое пространство родительского элемента (div expand)

Сегодня столкнулся с неприятной проблемой - при блочной верстке понадобилось растянуть блок на пустое пространство родительского элемента по вертикали (div expand). Естественно, по горизонтали никакой трудности нету - просто задать отображение блочным (display: block) и будет счастье =).

Список рутинных задач web-программирования

programmistПри изучении нового фреймворка, или языка web-программирования иногда возникает непонятное чувство замешательства, вы ставите себе вопросы: Когда можно считать, что вы выучили продукт на приличном уровне? Когда можно считать, что вы его знаете, а если некоторые вещи и не знаете, то сможете налету схватить/прочитать в мануале/прогуглить?

Работа с базами данных у Symfony framework. Введение (Урок 9. Ознакомление с Doctrine)

Мы уже не маленькие, уже умеем работать с контроллером, настраивать routing систему для обработки входных данных контроллером и создавать представление. Следующим логическим шагом будет обучение работе с базами данных у Symfony framework на примере Doctrine.

Конвертация движка таблицы в MySQL

Иногда нужно конвертировать движок таблицы MySQL в уже существующей базе данных.

Например, мне понадобилось создать связи между таблицами. Для их создания таблицы должны быть InnoDB (чтобы поддерживать foreign key).

Старые Wordpress (и не только) проекты используют MyISAM, потому что до версии MySQL 5.5.4 это был движок по умолчанию. Но он не поддерживает множество полезных функций, таких как внешние ключи, транзакции и т.д. Все эти функции поддерживает более современный движок InnoDB, который теперь используется по умолчанию.

ru en

Create relations in MySQL database using phpmyadmin

After reading this article, you will be able to create relations in MySQL database using phpmyadmin. If for some reasons you don't want to use phpmyadmin, please look at SQL queries below.

So, what reason to store relations in the database? After all, your application also solves this task. Actually, it's all about the restrictions and actions upon changes, which can be set using relations.

For example, you can deny deleting category while any article connected with it. Or remove all articles if category removed. Or set NULL in relation field. In any case, using relations increases fault tolerance and reliability of the application.

You need to use an InnoDB engine to create a relation. Only this engine supports foreign keys. If you have MyISAM tables, you can read how convert it to InnoDB.

Symfony framework. Шаблоны. Assets. Assetic. Stylesheets (Урок 8. Assets и Twig)

Итак, в предыдущем уроке мы научились использовать шаблонизатор Twig у Symfony framework. Теперь мы знаем, как написать простенький шаблон. Но не знаем, как подключать внешние компоненты (stylesheets, js, images) и т.д., а также создавать ссылки на собственные страницы.

Форма без таблиц

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

Использование шаблонов (template) у Symfony framework. (Урок 7. Twig)

Использование шаблонов (template) у Symfony framework возможно несколькими способами. Во первых, можно использовать php-шаблоны. Но более предпочтительным вариантом есть использование шаблонизатора Twig (по умолчанию). Twig - компилирующий обработчик шаблонов с открытым исходным кодом, написанный на языке программирования PHP. На выходе он дает php/html код. Кроме того, что Twig очень функциональный, он еще и очень быстрый.

Использование QwtPlotSpectrogram

Раньше мы научились использовать компонент QwtPlotSpectrocurve (здесь). У qwt предусмотрен альтернативный компонент, более удобный для визуализации аналитических функций. В этой заметке мы научимся использовать QwtPlotSpectrogram.

Настройка PHP timezone в php.ini

Во время работы с Symfony framework получил следующее предупреждение (warning):

Warning: date_default_timezone_get(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /var/www/symfony/app/cache/prod/classes.php on line 5009

На самом деле, ничего страшного или необычного - это было вызвано обновлением PHP до версии 5.4, а так как новая версия стала рядом со старой с новыми конфигами, пришлось заново настроить PHP timezone в php.ini. Для начала, нужно узнать, в какой мы timezone. Точнее, как ее нужно указать в PHP конфиге.

Routing у Symfony framework (Урок 6. Роутинг)

После того, как мы научились создавать контроллеры (здесь) теперь важно понять, каким образом пользователь может вызвать контроллер и как с ним работать.

Особенностью Symfony framework является routing система. Если, например, в yii framework по умолчанию роутинг определяется файловой структурой приложения (но это не запрещает вам использовать систему роутинга, для этого есть необходимые инструменты), то в Symfony framework вам обязательно придется задавать routing вручную (не считая базового, созданного генератором бандла).

Контроллеры в Symfony framework (Урок 5. Контроллеры)

После создания bundle( в предыдущем уроке ) пора приступить до описания логики приложения. Для этого нам понадобится понимание принципов работы контроллеров в Symfony framework. (О том, что такое контроллер как категория MVC можно почитать здесь).