Архив рубрики ‘framework-?’ Category

Сравнительные тесты ORM-ов LightOrm, Propel, Doctrine

Пятница, Март 7th, 2008

http://phplightorm.wiki.sourceforge.net/LightOrm+vs+Propel+vs+Doctrine+benchmark

Вышел ExtJS 2.0.1, читаем…

Четверг, Январь 24th, 2008

Что же обновилось?

Как всегда, исправлены баги с безопасностью и некорректным отображением разных компонент в браузерах (из тех проблем, что накопились со дня выхода версии 2.0). Более детальный обзор списка изменений добавляет:

  • Пополнился список локализаций виджетов, правда, для большинства эти языки достаточно экзотичны (каталонский, индонезийский, португальский и другие, всего 7 языков);
  • Обновлено и исправлено различные нюансы с скроллингом и перемещениями элементов — эти изменения затронули ядро библиотеки, и распространяются на все компоненты библиотеки. Но в первую очередь, разработчики отмечают, что значительно улучшилась ситуация с формами и таблицами (один из самых сложных и нетривиальных компонент вообще); (далее…)

Создание пустого объекта в Doctrine

Пятница, Декабрь 21st, 2007

Наверняка многие сталкивались с тем, что если создать пустой объект (у которого нет ни одного свойства с default-ным значением)

<?php 

$user = new User();

$user->save();

?>

то он просто не сохраняется в базу. Лично мне приходилось обходить это искусственным введением поля с дефолтным значением в объект.

Но можно это делать проще:

<?php

$user = new User();
$user->state(‘TDIRTY’);
$user->save();

$user->id; // 1

?>

«By default Doctrine doesn’t execute when save() is being called on an unmodified record. There might be situations where you want to force-insert the record even if it has not been modified. This can be achieved by assigning the state of the record to Doctrine_Record::STATE_TDIRTY.»

Как создать schema.yml для Doctrine по существующей базе

Понедельник, Декабрь 17th, 2007

1. Pull changes from db to schema.*ml (Symfony 1.0+ produce by default schema.yml):
 # symfony propel-build-schema

2. Convert schema.yml to schema.xml (Doctrine expecting schema.xml):
 # symfony propel-convert-yml-schema

3. Import schema to Doctrine:
 # symfony doctrine-import

 file schema.yml appears in config/doctrine

4. Build model:
 # symfony doctrine-build-model

 class files appear in lib/model/doctrine

5. Flush cache:
 # symfony cc

Источник: http://www.symfony-project.org/forum/index.php/m/33806/?srch=doctrine+build+yml+schema+database#msg_33806

Оптимизация ExtJS

Воскресенье, Декабрь 16th, 2007

Если вы используете в своих проектах фреймворк ExtJS, то наверное заметили, что, несмотря на все преимущества и мощность, библиотека все же обладает достаточно большим размером, что сказывается на производительности приложений. Да и даже в минимальной версии нам нужно подгружать несколько файлов (в основном, два JS файла и два стилевых, не считая изображений), а это секунды времени ожидания, для медленных же соединений вообще проблема, часто такая система будет намного медленнее чем даже обычный сайт без AJAX-а.Конечно, в правильно спроектированном приложении страниц, где подключаются все библиотеки, не так и много, и самым верным подходом является применение прелоадера (ну, например, выводить экран загрузки и активировать страницу только когда все загрузится). Но есть еще несколько путей, чтобы сэкономить самое ценно — время пользователя (и повысить скорость работы приложения).

Начнем с первого способа. Мало кто знает, но ExtJS можно не только использовать в том виде, какой предоставляется для загрузки (там полный дистрибутив с исходниками и документацией). На той же странице официального сайта есть ссылка на онлайновый конструктор ExtJS-а, который позволяет собрать библиотеку именно с теми возможностями, которые требуются вашему проекту, не включая все лишнее, а значит, экономя размер файла и время загрузки. (далее…)

Comet — событийно-ориентированная технология для WEB-приложений

Среда, Декабрь 12th, 2007

Заглядываем в будущее — Comet (не лимонный!)

Comet — архитектура WEB-приложений в которой web-сервер посылает данные клиентской программе (например web-браузеру) асинхронно, без необходимости «клиенту» запрашивать их. Это позволяет создавать событийно-ориентированные веб-приложения, обеспечивающие взаимодействие в реальном времени невозможные в существующих браузерах. Хотя термин Comet появился в 2006 году, идея на несколько лет старше, и называлась по разному, включая: server push, HTTP push, HTTP streaming, Pushlets, Reverse Ajax (встречаются и другие названия).

Comet-приложения используют долго-живущие HTTP-соединения между «клиентом» и сервером, которые сервер может обрабатывать «лениво» (lazily), отправляя новые данные клиенту когда они становятся доступны. Этим и отличается от оригинальной модели web-а, в которой браузер получает в ответе веб-страницу целиком на каждый запрос «клиента», а так же от AJAX-модели, в которой браузер запрашивает кусок данных для обновления текущей страницы. Эффек схожий в приложения использующих AJAX с запросами на сервер для получения новой информации, но производительность и скорость реакции на изменения увеличивается, вместе с тем нагрузка на сервер падает.

Comet не относится к каким-то специфичным методам по достижению этой модели взаимодействия с пользователем, но очерчивает их, но подразумевает использование родных «браузеру» технологий, таких как JavaScript как противопоставление закрытым проприетарным плагинам.

Перевел только основное (суть) , более подробно с Comet можно ознакомиться на сайте википеди: http://en.wikipedia.org/wiki/Comet_%28programming%29

Слабые стороны Doctrine

Среда, Декабрь 5th, 2007

Один из разработчиков ЛИМБа провел мини-исследование Doctrine, для тех кто присматривается к этому ORM-у, почитайте, познавательно: http://forum.limb-project.com/viewtopic.php?p=9632#9632

Вот и добрался до JavaScript Framework-ов, хе-хе…

Вторник, Октябрь 9th, 2007

Ext JS Desctop (JavaScript Framework)До наводке Джона начал изучать JavaScript Framework Ext JS 1.1 (http://www.extjs.com), за что ему спасибо. Радости моей до сих пор нет предела. Все ООП-эшно, все красиво (для админки и дизайн изобретать не нужно), на-AJAX-ино по самое нехочу. Ext JS Tasks (JavaScript Framework)Осталось только дождаться когда у всех пользователей будут шустрые тачки и JavaScript в браузере не будет узким горлышком, тогда всем наступит щастье. А пока использую в административной части Ext и дозированно в закрытых пользовательских частях сайта.

Так же смотрел в сторону Bindows-а (http://www.bindows.com), в части юзабилити и дизайна компонентов он проигрывает Ext-у, функциональность компонентов тоже немного скупее, в архитектуру пока сильно но совался (может там у них все в sugar-е, не знаю, вопрос к Антону ;), но так же есть компоненты, которые отсутствуют в Ext-е, вроде различных индикаторов, построителей графиков и векторных схем, что пока не требуется для моих задач.

Еще один положительным момент в использовании Ext-а, — хоть начал разбираться в JavaScript-е более основательно, познакомился с его ООП и наследованием через одно место под названием prototype (прототипы). По началу много времени убивалось на отлов багов связанных с областями видимости, которые много где нужно явным образом передавать. В качестве отладчика очень удобно оказалось использовать FireBug (про него можно написать отдельную статью — просто незаменимая вещь не только при отладке яваскрипта, но и CSS) под FireFox совместно с console.log(<просматриваемая переменная>).

Пока начал писать на Ext 1.1, подумал что как классно было тут такую-то фичу, а тут такую-то, и как по волшебству выходит версия Ext JS 2.0, в которой уже реализовао 90% желанных мною фич. Просто не верится ;o). Осталось дождаться стабильной версии и в бой, пока она только в альфе.

Так что все желающие овэбдванолить свои проекты, велкам ту Экст.

Рельсовые воины

Пятница, Сентябрь 7th, 2007

Как многие из посетителей Julik Live знают, последнее время я сильно углубился в Rails. Но записей тут не появлялось не поэтому. Все время с июля по октябрь было потрачено на поезда с 140 по 146, из которых я практически не вылезал. Во-вторых, огромное количество времени отнимает школа (на которую нужно пахать и пахать — и которая не предполагает ни блоггинга, ни вебдева как такового). Наконец-то нашлось полчаса, которые можно посвятить Rails, и это будет длинно и будет занимательно. Потому что просьбы товарищей надо выполнять. Дальше могут читать только люди причастные к веб-программированию (остальным будет неинтересно).

Technorati Tags: ,

(далее…)

Yahoo! bookmarks использует Symfony framework

Среда, Июль 18th, 2007

Yahoo! bookmarks uses symfony

В статье говорится о том что разработчики Яху Закладок выбрали Symfon. Закладки имеют 20 миллионов пользователей, и 12 языков (это к вопросу о тормознутости и монструозности Symfony). Разработка бета-версии фронт-энда заняло 12 человеко-месяцев. Детали читайте ниже: (далее…)