Обратите внимание, что новости можно получать по RSS.
X
-

Информационные технологии, LiveJournal cr_it - архив

16 марта 2010, 17:42 (5365 дней назад, №8786)Про MVC фреймворки для Flex, а также про AMF и PDO
Понадобилось тут написать систему для редактирования некоторых данных (ip диапазонов) на сервере, используя Flex для клиентской части и PHP для серверной. Одним из желаний было сделать всё более-менее правильно, т.к. процедурный подход, хорошо работающий на простых задачах, здесь уже создавал ощутимые проблемы. Помимо этого, от изобретения велосипедов (в виде XML пакетов) для обмена данными между клиент-сервером тоже хотелось отказаться.

Почитав, что пишет народ и посмотрев на исходники двух наиболее известных MVC фреймворков - PureMVC  и Cairngorm,  решил их не использовать, посчитав что сложность не соответствует задаче.
Стал смотреть другие фреймворки. Их много, например: FlashMVC, Riawave, Mate, EasyMVC, Dawn, RobotLegs, Vyana.

Я остановился на EasyMVC by Tom Bray (существует еще другой EasyMVC, так что автор важен). EasyMVC [ 1, 2, 3, 4, 5] - даже не совсем фреймворк - это скорее простой и понятный пример, который легко модифицировать под нужную задачу. Единственное что там не хватает, на мой взгляд, - это красивой реализации Commands (всё делается в Controller'e).

Со стороны сервера, EasyMVC подрузамевает использование AMFPHP (т.е. обмен данными происходит в адобовском бинарном формате AMF).
AMFPHP  - уже довольно старая разработка, но несмотря на это интенсивно используется. Автор её забросил (он теперь работает над ZendAMF , который подрузамевается использовать в связке с Zend ) но подхватил другой человек. Короче говоря, AMFPHP мне понравился.
Существует некоторая путаница с версиями AMFPHP. Последняя версия - 0.9.2. В феврале 2010-го новый автор написал, что работает над 2.0. В версии 0.9.2. есть ряд отличий от 0.9. В частности, по вопросу аутентификации советую сразу погуглить слово beforeFilter.

Помимо AMFPHP и ZendAMF можно ещё посмотреть в сторону SabreAMF  и WebORB. Да, кому интересно - если серверную часть писать для Google App Engine на Python'e, то существует как минимум PyAMF (в связке с Flex приложением работает, я лично пробовал).

Ещё, к слову о правильности, на серверной стороне, для работы с разными БД из PHP, понравился PDO.
Выглядит это так (пример использования prepared statements):

try
{
    $this->db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);

    $st = $this->db->prepare("
        DELETE FROM ip_base
        WHERE id = :id
        ");

    $res = $st->execute( array(':id' => (int)$vo[id]) );

}//try
catch(PDOException $e)
{
    return $e->getMessage();
}//catch

Вот здесь еще примеры про PDO.

Опубликовано: Пётр Соболев

Случайная заметка

2508 дней назад, 05:2210 января 2018 Архитектура и программирование Mattel Intellivision Mattel Intellivision — первая в мире игровая приставка с 16-разрядным процессором. Компьютер был разработан американской фирмой Mattel в 1979 году и производился вплоть до 1984 года (выпущено более 3 млн. штук). Intellivision широко известен в США, однако малоизвестен в Европе и совсем неизвестен в России. ...далее

Избранное

2758 дней назад, 01:575 мая 2017 Часть 1: От четырёх до восьми Я люблю читать воспоминания людей, заставших первые шаги вычислительной техники в их стране. В них всегда есть какая-то романтика, причём какого она рода — сильно зависит от того, с каких компьютеров люди начали. Обычно это определяется обстоятельствами — местом работы, учёбы, а иногда и вовсе — ...далее

2270 дней назад, 20:305 сентября 2018 "Finally, we come to the instruction we've all been waiting for – SEX!" / из статьи про микропроцессор CDP1802 / В начале 1970-х в США были весьма популярны простые электронные игры типа Pong (в СССР их аналоги появились в продаже через 5-10 лет). Как правило, такие игры не имели микропроцессора и памяти в современном понимании этих слов, а строились на жёсткой ...далее