Ограничение доступа при помощи .htaccess

Иногда удобным методом ограничить доступ к разделам сайта  (например, к панели администратора или каким-то конфиденциальным данным) есть ограничение доступа при помощи .htaccess (или, по другому, basic authentication). Конечно, с помощью скриптов это можно сделать изящнее, удобнее, а иногда даже безопаснее. Дело в том, что вся информация для получения доступа отправляется с каждым запросом в виде заголовков. Но если это не критично, то можно использовать; это наверное, самый быстрый вариант.

Работа с формами у Symfony framework (Урок 12. Формы. Введение)

В этой заметке научимся создавать и обрабатывать формы у Symfony framework.

Формы можно как создавать "с нуля", так и использовать ORM (модели таблиц с баз данных). Для начала рассмотрим второй вариант. На практике чаще всего встречается именно такие формы. Ведь в большинстве случаев все, что вводится в форме где-то сохраняется (в БД).

Размещение проекта на 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

Создание связей между таблицами с помощью phpmyadmin

В этой заметке мы научимся создавать связи между таблицами в базе данных MySQL с помощью phpmyadmin. Если по какой-то причине вы не желаете использовать phpmyadmin, смотрите приведенные ниже SQL-запросы.

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

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

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

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