Архив

Публикации с меткой ‘PHP’

Вышел Zend Framework 1.8

Разработчики Zend Framework просто радуют скоростью разработки своего фреймворка. Не успели все изучить новое интересное в Zend Framework 1.7, как уже готова новая версия.

Я уже перевел свой проект с Zend Framework 1.6 на версию 1.8. Из того, что сразу надо отметить: для успешного переезда необходимо будет изменить Autoloader для классов. Теперь он умеет работать с пространствами имен и собственно на них и ориентирован. Но если вам надо простая его работа - это можно легко сделать, указав параметр.

Радует также и то, что новая версия не просто исправляет ошибки предыдущей, но и включает в себя массу новых компонентов, вот что добавили разработчики: Читать далее…

admin PHP , , ,

Симфония не зазвучала. symfony не понравился.

6 Апрель 2009

Работаю сейчас над проектом, который разрабатывается с использованием PHP фреймворка - symfony. В целом, после Zend Framework, symfony мне очень тяжело дается. Бесконечная генерация миллионов классов, тысячу раз чистить кеш, и только потом получить рабочее приложение - уж сильно накладно.

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

Еще один важный момент. Перед тем как начинать генерацию классов и SQL для проекта - нужно 100% определиться с необходимыми полями в БД, иначе потом придется производить все действия заново. К сожалению в нынешних условиях разработки я не знаю ни одного проекта, который бы с начала проектирования сохранил свой первозданный вид. Всегда будут “А может еще добавить…” и тут сразу возникают трудности.

Конечно, генерировать классы удобно, да и идея  ORM просто отличная, но к сожалению в проекте используем Propel, и танцы с бубном над правильным составлением Criteria достали уже.

Приятно порадовала простота реализации мультиязычности средствами i18N, надо будет посмотреть как обстоят дела у ZF с этим. Но в целом фреймворк пока не радует. Хотя мб это и ошибочное мнение и я просто не нашел подход к symfony.

Тем не менее продолжаю любить Zend Framework с его плохой реализацией шаблонов для форм :)

admin PHP , , ,

phpDoc в Eclipse - когда код становится понятнее…

27 Июль 2008

О важности комментирования кода говорилось уже много раз. Потому о том, что комментарии помогают и очень нужны программисту мы в тысячный раз говорить не будем. Лучше поговорим о правильном и красивом использовании возможностей phpDoc в замечательной IDE - Eclipse.
Если вы хотите что б каждый класс написанный вами был понятен вам и вашим коллегам - можете использовать довольно простой стандарт записи комментариев, который будет обработан Eclipse и выведен при работе с этим классом или методом:

/**
* Short description - used in indexlists
*
* Multiple line detailed description.
* The handling of line breaks and HTML is up to the renderer.
* Order: short description - detailed description - doc tags.
*
* @param string Target directory for the generated HTML Files
*/

Если перед обьявлением класса или метода написать такой комментарий - IDE обработает его и выведет вам подсказку при дальнейшем их использовании. Это очень удобно при коллективной разработке и больших обьемах кода. Назначение методов становится понятнее, передаваемые параметры выводятся, возвращаемые значения указываются.
Следует отметить что Eclipse автоматически генерирует заготовку под такой стиль комментария после введения /** и нажатия Enter перед обьявлением метода/класса. А получить подсказку можно по нажатию Ctrl+Space после ввода $myClassName->.

admin PHP , ,

Эпоха 2.0 докатилась и до Магадана

2 Июль 2008

Вот так. 2.0 применимо теперь не только для нашумевгео Web 2.0, но и для новой поисковой системы Яндекса - Магадан. В официальном блоге Яндекса появилась небольшая, но очень важная новость:

С сегодняшнего дня на www.yandex.ru работает поисковая программа “Магадан 2.0″. В ней сделано много улучшений в алгоритме ранжирования, например, добавлены новые факторы, учитывающие уникальность контента, классификатор порнографии, геоклассификатор запроса, классификатор коммерциализированности, и многие другие. Следующая остановка — “Находка”.

Очень заинтересовали классификаторы. Что нужно понимать под фразой “классификатор коммерциализированности” (привет Sape) . Результаты еще тяжело оценить, т.к. систему только запустили. Еще интереснее становится “Находка”. Полк оптимизаторов очень удивился такому скорому запуску версии 2.0 поискового механизма.

Обьясняется все это очень просто. Яндекс готовится выйти на IPO, потому старается. Подключает новые сервисы, открывает офис в Америке. Что ж, посмотрим что с этого получится.

admin Заработок в сети , , ,

Установка PHP Eclipse Plugin в Ubuntu

31 Май 2008

Расскажу решение проблемы, которая возникла после установки Eclipse в Ubuntu.
Начну с того - что Eclipse очень удобная IDE и разработчику просто необходима для быстрой и качественной работы.
В Ubuntu 7.10 установить Eclipse можно двумя путями:
Читать далее…

admin Обо всем , , , , ,

Набор CheatSheets. Подборка шпаргалок для программистов

23 Май 2008

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

  • Characters Cheatsheet (Шпаргалка по спец.символам)
  • CSS Cheatsheet
  • HTML Cheatsheet
  • JavaScript Cheatsheet
  • mod_rewrite Cheatsheet
  • MySQL Cheatsheet
  • PHP Cheatsheet
  • Regular Expressions Cheatsheet
  • SQL Server Cheatsheet

Каждая шпаргалка содержит описания функций, типов для разных языков. В некоторых есть примеры кода. Вобщем качаем и сохраняем. Cheatsheets - вещи из разряда “Must have”.
Читать далее…

admin Программирование , , , ,

ICQ бот на PHP? Легко!

13 Апрель 2008

Привет. Вот всегда была интересна мне тема создания ICQ-ботов на PHP, и сегодня решил рассмотреть ее подробнее и поделиться с вами найденной информацией. Итак, задача: написать ICQ-бот на PHP. Что б реализовать запланированное, нам не нужно изучать протокол ICQ, а достаточно просто воспользоваться готовым РНР-классом для работы с протоколом аськи. Когда класс WebIcqLite.class.php скачан, можно приступать к первым попыткам его использовать.
Вот что дают разработчики в качестве примера использования класса:
Читать далее…

admin PHP , , ,

PHPLinq - аналог LINQ (Language Integrated Query) в C#3.0

6 Апрель 2008

Недавно, друг подсказал мне неплохое решение для работы с массивами в PHP. Это класс, который работает на подобии LINQ в C#3.0 и позволяет делать выборки из массивов с помощью конструкций, которые напоминают SQL. Вот небольшой пример, выборка слов, длина которых меньше 5 символов:

// Create data source
$names = array("John", "Peter", "Joe", "Patrick", "Donald", "Eric");

$result = from('$name')->in($names)
->where('$name => strlen($name) < 5')
->select(’$name’);

Следует отметить, что данное решение работает только с версией PHP 5.2 или выше.
Более подробная информацией по PHPLinq размещена на этом сайте.

admin C# (Csharp), PHP , , ,

Делаем Submit красивее или “Как отправить форму…”

30 Март 2008

Ко мне часто обращаются с различными вопросами. Вопросы касаются как статей размещенных на сайте, так и других, более отвлеченных тем. Так вот недавно проскочил один вопрос, который хочу раскрыть подробнее.
Итак, вопрос: Как отправить форму по нажатию на картинке?
Решение есть довольно простое и стандартное. Вот пример формы с одним текстовым полем, которая отправляет свое содержимое при нажатии на картинку:
Читать далее…

admin PHP , ,

И все-таки используем setlocale для правильного решения задачи с русским текстом

18 Март 2008

В предыдущем примере я предложил быстрое решение проблемы, при которой функции strtolower и strtoupper перестают работать с русским текстом. Это решало проблему, согласен, но настоящий программист должен уметь ПРАВИЛЬНО решать задачи. Для правильного решения задачи работы со строками в PHP, будем предварительно использовать функцию setlocale:

string setlocale ( mixed $category , string $locale [, string $... ] )

Вот как она выглядит в общем виде. setlocale явно указывает локаль, с которой будут работать функции. Параметр $category какраз и определяет, на какие функции будет распространяться установка локали, $category может быть:

  • LC_ALL - модифицировать все установки
  • LC_COLLATE - только сравнения строк, см. strcoll()
  • LC_CTYPE - классификация строк, например strtoupper()
  • LC_MONETARY - денежные значения
  • LC_NUMERIC - числовые значения
  • LC_TIME - значения даты/времени

Тоесть мы просто перед вызовами функций для работы со строками/датами/временем/денежными форматами и т.д. должны указать локаль, и дальше функции будут знать с каким текстом они работают:

setlocale(LC_ALL, ‘rus’);

Думаю такое решение задачи является более правильным и корректным.

admin PHP ,