Привет типизация

Совсем недавно писал о типизации и как в воду смотрел, ай да я молодец. Не прошло и недели, как впечатлённые моими размышлениями бредом разработчики решились таки включить годовалый патч .

Очень рад, что разработчики php core учатся договариватьсяи включать патчи друг друга. В декабре прошлого года засветилась надежда, что включат php-fmp, его включили в svn. Но, по недавней информации в версии 5.3.3 его ждать не стоит. Надеюсь, что Андрей Нигматулин и Антон Довгаль уговорят всё же остальных.

Типизация в php

Многие, наверное уже и не помнят какие холивары возникали по поводу недоООПешности php. Зачастую спорщики просто не знали о возможностях языка, другие судили по версии 3-4. Но вот уже появились нэймспэйсы, замыкания, лямбда функции кое как сделанные. Ещё одной проблемой виделась отсутствие строгой типизации. Особого смысла я в ней не вижу и, как показала практика, у не строго типизированных языков в вебе преимущества. Но всё же поговорим об этом. Continue reading

Пример использования ArrayAccess

Мне недавно в блоге задали вопрос о применении ArrayAccess. Просто как замену массивам — глупо, тем более теряется производительность. Итак, для этого у нас две основные причины — set/get должны как-то влиять на значение переменных, вторая — объект может использовать данные помещённые в нём для других методов.

Рассмотрим примеры. У нас есть класс для работы с таблице из базы данных как с объектом. Continue reading

Моя реализация ЧПУ

Нашёл на одном из блогов реализацию ЧПУ и решил внести свою лепту. ЧПУ — человеко понятный урл. На аглийском наиболее популярное название User Friendly URL. С какого-то перепугу разработчики решили, что стандартный урл с гет переменными непонятен и покатилось. Сначала сравним варианты для вывода списка новостей категории test отсортированного по date:
news.php?category=test&sort=date — стандартный подход, вроде всё понятно ключ=значение
news/category/test/sort/date/ — если убрать выделение, то не понятно где ключ, а где значение
news/test/date/ кратко, но довольно путано, обязательный порадок, трудно изменять
news/category:test/sort:date/ — этот вариант хорош, так же нагляден как класика и даже чуть короче
news.test.date — краткий, но не информативный, есть один плюс — такие страницы без тайтла сохраняются с нормальным названием. Continue reading

Работа с формами

Когда новички спрашивают что бы им написать посерьёзнее, обычно советуют гостевую книгу. Вариант хороший, в нём много разных путей реализации, можно повесить авторизацию, работу с деревьями, но самое главное — формы. Самое удивительное, что я встречал огромное количество (количество пишется с одним «л», когда уже избавлюсь от этой ошибки) «профессионалов», которые так и не научились делать удобные формы. Совет заказчикам при оценке партфолио всегда проверяйте форму обратной связи или регистрации-авторизации. Continue reading

Смешиваем singleton и registry

Основное достоинство Одиночки одновременно является и его недостатком. Допустим у нас есть класс для работы с базой данных реализованный на singleton (о ужОс, нужно было хотя бы фабрику). Всё замечательно работает, пока в один непогожий день мы не придумываем держать данные в разных базах на разных серверах. Ну и этого геморроя нам мало, поэтому от возможностей мускула мы отказываемся. И приплыли… Соединение у нас то ОДНО. Отказываться от singleton и перелопачивать тонны кода тоже не с руки, значим поставим костыль. Continue reading

Паттерн: Singleton

Продолжая тему паттернов бегло расскажу что это за зверь singleton. На русский язык он переводится как «одиночка», относится к порождающим паттернам и позволяет нам плодить объекты, вернее всего один. Singleton гарантирует, что будет создан только один экземпляр класса. Для этого конструктор делается приватным и создаётся статический метод, который проверяет создан ли уже объект и возвращает нам этот объект. Continue reading

Обустраиваем Zend Studio

В Zend Strudio 7 нет парочки очень нужных вещей для php разработчика. Сперва прикрутим поддержку самого популярного шаблонизатора — Smarty. Затем добавим поддержку так же очень популярного формата yaml, который для меня похоронил xml конфиги. Continue reading

Обновился Netbeans

Обновился IDE до версии Netbeans 6.8. Из особенностей, важных для PHP — поддержка PHP 5.3 и поддержка замечательного фреймворка   Symphony. А так же на сладкое — подсветка php в YAML. Многие не знают, но с помощью плагина легко добавляется подсветка и автокомплит smarty, покопайтесь в плагинах.

Отчёт о конференции «Байнет 2.3 Gamma»

Свершилось. С 14-го по 15-е мая 2009 года на просторах нашей страны случилась конференция посвящённая вэбу. Я решил пойти туда не только послушать, но и себя показать :( , но обо всём по порядку. Continue reading