войти зарегистрироваться

PHPCodeception — тестирование по-новому

PHP очень популярный язык программирования, но тестирование в нем, это скорее прерогатива экспертов, а не жизненная необходимость. Неужели это от того, что PHP-разработчики поголовно быдло-кодеры? Я считаю, что нет. Скорее всё от того, что системы тестирования порой излишне усложнены. А тесты, наоборот, должны были предельно просты: легко читаться, писаться, отлаживаться, и конечно же, быстро выполняться. Мое виденье того как это можно воплотить в PHP вылилось в проект под названием Codeception.

С ним тесты для ваших веб-приложений могут выглядеть так:
<?php
$I = new TestGuy($scenario);
$I->wantTo('create new blog post');
$I->amOnPage('/blog/posts');
$I->click('Create new post');
$I->fillField('Title','Codeception, a new way of testing!');
$I->fillField('Text','Codeception is new PHP full-stack testing framework.');
$I->click('Send');
$I->see('Congratulations, your post is successfully created!');


Согласитесь, такой тест понятен без дополнительных комментариев.
А теперь самое интересное: этот код без всяких изменений может быть выполнен как функциональный тест в фреймворках symfony, Symfony2,Zend Framework, а также в браузерном эмуляторе Goutte и даже через Selenium. Таким образом, вам предлагается единый интерфейс для написания функциональных тестов практически для любого сайта.

PHPКакой PHP Framework Вы используете?

Проголосовало 1797 человек. Воздержался 531 человек.

symfony frameworkКонференция Symfony Camp UA 2011

Конференция Symfony Camp UA 2011

Конференция Symfony Camp UA 2011 посвящена разработке web-приложений с использованием PHP Framework Symfony. Основная тема конференции — это новая версия фреймворка Symfony 2. Это третья по счету конференция, которая состоится 29 октября 2011 года в Киеве.

Для участия необходимо пройти регистрацию. Конференция Бесплатная!


Программа конференции еще формируется. Все желающие выступить с докладом на Symfony Camp UA могут подать заявку на сайте 2011.symfonycamp.org.ua.

Doctrine ORMПагинация в Doctrine — считаем количество записей с помощью SQL_CALC_FOUND_ROWS (MySQL) из песочницы

Предыстория


Не так давно, в связи с производственной необходимостью, я познакомился с замечательным фреймворком Symfony 2, в котором для работы с базой данных используется мощная популярная библиотека — Doctrine 2, включающая в себя два компонента: ORM (Object relational mapper) и DBAL (Database Abstraction Layer). ORM предоставляет приложению возможность общаться с базой данных на языке объектов, а DBAL, в свою очередь, представляет собой более низкоуровневый способ доступа к данным посредством написания запросов, основанный на php-библиотеке PDO. ORM предоставляет множество преимуществ при разработке сложных бизнес-приложений, но в то же время налагает и ряд ограничений, связанных с тем, что разработчику не приходится писать непосредственно SQL-запросы — ORM Doctrine предлагает свой собственный, объектно-ориентированный язык запросов, который преобразуется в привычный SQL уже за кадром. С одним из таких ограничений я и столкнулся, и хочу поделиться, каким образом я его успешно преодолел. Речь пойдёт о получении общего количества записей, возвращаемых запросом, если убрать из него ограничение LIMIT.

symfony frameworkПостраничный вывод на Symfony 2


Привет Хабрасообщество!

Предисловие


Я пользуюсь «благами» Symfony недавно, и нет границам моей радости, потому что вышел второй релиз — Symfony 2. Не побоюсь этих слов — это новый «язык» программирования, новая платформа для создания веб-приложений. Симфони2 изменил процесс программирования на PHP (по крайней мере для меня :) )

Поскольку русским языком владею не очень хорошо, то комментариев будет мало. По-моему все будет понятно из кода. Просто возьмите код и используйте :)

Features :)


  1. Постраничный вывод
  2. Постраничный вывод с сортировкой

symfony frameworkВышла финальная версия Symfony2. Ура!

image

Оставив позади 12 превью релизов, 5 бета версий и 6 релиз кандидатов, наконец-то вышла финальная версия Symfony2 — претендента на звание самого лучшего на сегодня фреймворка, написанного на языке PHP.

На данный момент, Symfony2 — самый популярный проект на Github в разделе PHP и занимает 12 место по популярности на всей платформе Github.

Всего лишь за 4 месяца, еще до выхода финальной версии, только на одном Github было создано больше 400 бандлов (расширений) для Symfony2. Количество разработчиков на момент релиза составило около 250 и продолжает расти.

Поздравляю всех фанатов Symfony2 с таким значительным событием и желаю всем, кто взял участие в разработке, не останавливаться и продолжать радовать PHP-мир качественными продуктами!

Новость на сайте Symfony2

symfony frameworkИспользование Zend GData в Symfony2-проекте



Ведущий разработчик фреймворка Symfony — Фабьен Потенсьер (Fabien Potencier) в 2009-м году выступил на Zend/PHP Conference с докладом о извлечении выгоды в совместном использовании Symfony 1.3/1.4 и Zend Framework. Основные тезисы его речи доступны в презентации, опубликованной на его персональном сайте [1].

Как известно, Symfony2 — это практически новый фреймворк, созданный с использованием новейших возможностей языка PHP. На данный момент разработка перешла в RC-цикл, и всё больше разработчиков, имеющих опыт работы на первой ветке Symfony (да и не только они), смотрят в сторону нового флагмана. Но, даже несмотря на значительное количество включенных в стандартное издание компонентов, Symfony2 не покрывает все нужды веб-разработчика, поэтому, рано или поздно, встает вопрос о подключении внешних библиотек.

Очевидно, что в этом свете объемный комплект библиотек Zend (Gdata, Search_Lucene, Pdf и т. д.) нельзя обойти стороной. В данном посте мной будет рассмотрен процесс интеграции Symfony2 и Zend на примере Zend Gdata — библиотеки для взаимодействия с Google Data API [2].

symfony frameworkРелевантный поиск в Symfony на основе библиотеки Zend Lucene из песочницы

Вступление


Как известно, в Symfony нет встроенного поискового движка. Официальная документация в качестве примера приводит использование библиотеки Zend Lucene. Но в реальном проекте не все так просто, как в примере. В частности, в примере даже не реализован ранжированный вывод результатов.

Возможно, Zend Lucene не идеальное решение. Но для небольших проектов не имеет смысла использовать серверные решения наподобие Sphinx. Встроенный в mysql полнотекстовый поиск тоже не всегда возможно использовать. Поэтому я опишу как я настроил поиск в своём проекте.

Постановка задачи


Есть проект написанный на symfony, в качестве ORM выбрана doctrine. База данных — mysql. Кодировка utf-8.

symfony frameworkSymfony на русском

Совсем скоро выйдет релиз Symfony 2. И хотелось бы читать документацию,
да и обсуждать вопросы, связанные с фреймворком, на родном языке.
Именно с этой целью был создан новый русскоязычный сайт о Symfony 2.
Но так как объем документации достаточно велик, в одиночку переводить становится трудно.
Это призыв к помощи, к коллективному переводу и обсуждению документации.
Для этого вы можете воспользоваться формой на сайте или же редактировать страницы
напрямую, через GitHub.
И да — это реклама, немного преждевременная, т.к. пока сделано совсем мало.
Проект не несет какой-либо прибыли, единственная цель —
сплотить русскоговорящих разработчиков, использующих Symfony 2.
Надеюсь, вам понравится!
PS на топик-ссылку не хватает кармы.

Веб-разработкаРазработка сайтов на Diem CMS: преимущества, философия, примеры и подводные камни

Продолжение истории про замечательную инициативу группы французских web-разработчиков под названием Diem CMS.

В этой статье вас ждут


— несколько примеров того, как Diem может облегчить жизнь вебмастеру
— подводные камни, с которыми вы можете столкнуться, и их возможные решения
— немного философских рассуждений о том, чем Diem принципиально отличается (в лучшую сторону) от соратников
— интересные факты, связанные с топиком
— а также скриншоты и примеры кода
Статься получилась объемная и содержательная.