Random MySQL date

В этой статье рассмотрим несколько вариантов получения случайной даты в MySQL. Для чего это нужно? Ну к примеру для генерации фикстур и прочих тестовых данных, чтобы были похожи на реальные.

Read More »

Posted in Профессиональное | Tagged , | 4 Comments

Silex – просто добавь воды?!

Мимоходом потребовалось портировать один “оглобельный” сайт на новую платформу. В принципе самое важное там было – это смена дизайна. HTML + SSI? Но сайт мультиязычный, зараза. Немного скрипта таки придется применить.

В качестве эксперимента портируем 5ти язычный сайт на Silex (который суть есть обезжиренный Symfony2).

Note: english version of this article published on the SymfonyGuru site.

Read More »

Posted in Профессиональное | Tagged , , , , | 6 Comments

PhpStorm: поддержка Symfony Command Line

Начиная с PhpStorm 2.0 можно использовать Symfony command line tool при помощи Command Line Tool Support.

Ниже приводится небольшое руководство по использованию. Вам понадобится PhpStorm 2.0 и Symfony 1.1 или более поздней версии (включая Symfony 2.0 BETA – в оригинальное руководство не входило, но мной проверено). Если у вас нет Symfony, руководство по установке вы можете найти здесь.

Read More »

Posted in Профессиональное | Tagged , , , , | 9 Comments

Вопрос-ответ: какие системы тестирования web-сайтов существуют

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

Read More »

Posted in Профессиональное | Tagged , , | 2 Comments

Assembla: несколько SSH ключей для разных проектов под одним пользователем

Небольшой хинт по использованию нескольких ключей (для различных проектов) для одного пользователя при работе с git.assembla.com в linux.

Read More »

Posted in Профессиональное | Tagged , , , | 2 Comments

Symfony2 book: Основы Symfony2 и HTTP / Symfony2 and HTTP Fundamentals

Данный перевод главы Symfony2 and HTTP Fundamentals публикуется с разрешения автора:

Канат Гайлимов
Web-разработчик, блогер
http://gailimov.info

Поздравляем! Изучая Symfony2, вы становитесь на правильный (истинный) путь и будете более продуктивным, всесторонним и популярным веб-разработчиком (на самом деле, 2 последних пункта на ваше усмотрение). Symfony2 построен так, чтобы вернуться к основам: разработаны инструменты, которые позволят вам разрабатывать быстрее и создавать более надежные приложения, оставаясь вне вашего пути. Symfony построен на лучших идеях многих технологий: инструменты и концепции, которые вы собираетесь изучать, представляют усилия тысячи людей, в течении многих лет. Другими словами, вы не просто изучаете “Symfony”, вы изучаете основы веб, лучшие практики разработки, и как пользоваться многими новыми, удивительные PHP-библиотеки, внутри или независимо от Symfony2. Итак, приготовьтесь.

Оставаясь верной философии Symfony2, эта глава начинается с объяснений основных концепций, общих для веб-разработки: HTTP. Независимо от вашего происхождения или языка программирования, эта глава обязательна к прочтению для всех.

Read More »

Posted in Профессиональное | Tagged , , , , | 8 Comments

Symfony2 book: Основы создания страниц / The Basics of Page Creation

Создание новой страницы в Symfony2 это простой процесс, состоящий из 2 шагов:

  • Создание маршрута:
    Маршрут определяет URI (например /about) для вашей страницы, а также контроллер (PHP функция), который Symfony2 должен выполнить, когда URI входящего запроса совпадет шаблоном маршрута;
  • Создание контроллера:
    Контроллер – это PHP функция, которая принимает входящий запрос и трансформирует его в объект Response (ответ).

Нам нравится такой подход, потому что он соответствует тому как работает Web. Каждое взаимодействие в Web инициализируется HTTP запросом. Забота вашего приложения – интерпретировать запрос и вернуть соответствующий ответ. Symfony2 следует этой философии и предлагает вам инструменты и соглашения, для того чтобы ваше приложение оставалось структурированным при росте его сложности.
Read More »

Posted in Профессиональное | Tagged , , , , | 15 Comments

Doctrine2: эмулируем timestampable behavior через lifecycle callback

Ниже рассмотрим простой, но имхо нужный пример по реализации аналога timestampable в Doctrine2.

Read More »

Posted in Профессиональное | Tagged , , , , | 5 Comments

Symfony2: аналог preExecute() для контроллера

Я думаю многих смущает отсутствие preExecute в стандартном контроллере Symfony2. Ниже я приведу возможное решение данного вопроса при помощи внедрения зависимости через Service Container (Оригинал подсмотрен у Szymon Szewczyk).

UPDATE 20 января 2012: статья обновлена в соответствии с современными реалиями SF 2.0.9 (фактически изменения коснулись именования тага и события)

Read More »

Posted in Профессиональное | Tagged , , , | 18 Comments

Осторожно! Злой “bad behavior”

Две недели назад включил антиспам-фильтр bad behavior. Спам как ветром сдуло. Также как и доступ для googlebot. Трафик с Google за две недели упал в 4-5 раз. Написал реквест разработчику с просьбой помочь, но не уверен в результате.

Вот наглядный пример: bad behavior блокирует доступ к sitemap.xml (генерируемый при помощи XML-Sitemp plugin):

В общем, как поется в песне – “думайте сами, решайте сами – иметь или не иметь”… гемор с трафиком. Или со спамом.

Posted in Профессиональное | Tagged , , | Leave a comment