Джозеф Кроуфорд, один из моих читателей, прочитал статью о том, как я не люблю писать getter’ы и setter’ы и предположил, что я могу использовать волшебные методы __get и __set. Я скажу вам, почему это не очень хорошая идея, использовать их обычным способом. Кроме того, я собираюсь поведать вам историю, где […]
Начало работы с PHPUnit, Composer и Omniture API
Мы работаем с системами аналитики веб-приложений от компании Omniture. У меня давно возникло желание запросить текущие данные из дата-центра Omniture для формирования некоторых внутренних отчетов. Omniture при составлении отчетов использует RESTful API, после непродолжительной работы с которым, я решил, что неплохо было бы написать специально для него библиотеку оболочки. Недавно […]
Ещё раз о filter_var
Очень часто приходится сталкиваться с простейшей задачей — валидацией данных из формы или любых других источников (кукисы, заголовок запроса, etc.) И каждый раз 95% разработчиков городят какие-то неимоверные велосипеды (регулярные выражения, «уникальные» алгоритмы хеширования паролей, etc). И каждый раз мне приходится рассказывать о такой невероятно полезной и нужной функции php […]
Итак, вы хотите писать тесты
Меня часто просят дать несколько советов о том, с чего начинать написание тестов для PHP. Вы обратились по адресу, так как я представляю себя в качестве эксперта-ниндзя-рок-звезды-сенсея-самоуверенного-эгоиста по этой теме. Я долго боролся с придумыванием ответа, который должен поместиться в 140 символов Twitter-сообщения. И вот недавно мне стало очевидно, что […]
Еще раз о росте PHP
Аналитическая компания Netcraft занимается мониторингом веб-серверов с 1995 года, в числе прочего отслеживая применение широкого спектра скриптовых технологий в сети, — с 2001 года. Одной из таких скриптовых технологий является язык PHP, который в настоящее время отмечен компанией Netcraft на более чем 200 миллионах веб-сайтов. Первая версия PHP была названа […]
Принцип Инверсии Управления – Голливудский Принцип
Среди программистов (включая и меня, так что здесь я публично признаю свою вину) бытует мнение о том, что Инверсия Управления (IoC) является не более, чем синонимом для старого принципа Внедрения Зависимости (DI). Существует простая причина для такой точки зрения: идея Принципа Внедрения зависимостей состоит в реализации классов, чьи элементы обеспечиваются […]
Принцип открытости / закрытости (open closed solid)
Должен признаться, когда впервые увидел академическое определение принципа открытости/закрытости, его смысл был для меня удивительно ясен. Я отбросил из определения весь технический жаргон, и принцип читался как заклинание, которое мы слышали раньше много раз: «Не ломай ядро». Ну, правда, здесь существует некоторая двусмысленность высказывания, так как есть по крайней мере […]
PHPOffice
Команда энтузиастов, под брендом PHPOffice ведёт разработку библиотек для чтения и генерации офисных файлов. На данный момент доступны библиотеки для следующих форматов: Word (word2007, odt, pdf, rtf, html) Excel (excel2007, excel5, csv, pdf, html) Power point (powerpoint2007, odp, serialized) Visio (msvision2007, msvisio2013) Project (msprojectexchange, gantproject)
Почему некоторые PHP-разработчики предпочитают статические API?
В мире существуют две разновидности PHP-разработчиков. Одни предпочитают статические методы, потому что с ними легко работать, другие же, напротив, считают статические методы — зло и не используют их в своей практике. В этой статье попробую, используя опыт работы с несколькими фреймворками, объяснить, почему некоторые разработчики игнорируют лучшие практики и используют […]
Ответ на «микрооптимизацию в PHP»
На прошлой неделе я прочитал пост, рекомендованный мне в PHP Weekly. Он назывался Микрооптимизация в PHP. Я повелся, ведь всегда стремлюсь быть лучшим PHP разработчиком. Пост начинается с общих рекомендаций, которые, по сути, являются даже не микро-, а микро-микрооптимизацией. Продолжая читать, я приходил к выводу, что описанное в тексте и вовсе имеет мало […]