Обновить
67.3

PHP *

Скриптовый язык общего назначения

Сначала показывать
Порог рейтинга
Уровень сложности

Что нового я узнал на PHPconf 2008

Время на прочтение5 мин
Количество просмотров967
Пару дней назад прошла конференция PHPConf 2008, для веб-разработчиков с ориентацией на PHP-программистов. Чтобы закрепить свои впечатления решил написать пост, что лично я вынес с этой конференции. Не претендую на истину последней инстанции, так что наверняка других участников заинтересовало совершенно другое. Наверняка кто-то ездил с целью в основном пообщаться в кулуарах, кто-то с целью попробовать пиво Пилзнер Урквел. Я написал, что понравилось/не понравилось мне.

Итак, начинаем по пунктам рассматривать все выступления (возможно я что-то и забыл, но значит оно мне точно не очень понравилось).
Читать дальше →

Особенности условных конструкции со строками в PHP

Время на прочтение3 мин
Количество просмотров3.6K
На Хабре часто обсуждается какой язык лучше для написания безопасных приложений. При этом часто отмечается, что PHP спроектирован таким образом, что начинающий разработчик будет допускать ошибки, приводящие к дырам безопасности. В этом хабрапосте я хочу рассказать о, на мой взгляд, нелогичном поведении операций сравнения, операторов if и switch при работе со строками. Опытным разработчикам данные особенности известны, но решил все же собрать их в одном месте. Думаю пост будет полезен начинающим разработчикам и тем, кто работает в PHP, имея опыт программирования на других языках.

Что есть истина?

Какие строки истинны? Рассмотрим пример:
Читать дальше →

Фотошопим на PHP

Время на прочтение2 мин
Количество просмотров4.1K
Уменьшаем изображение разными библиотеками и сравниваем результат Для многих задач автоматической обработки фотографий не подходит качество и функционал библиотеки GD. Поскольку возможности обратиться к Photoshop из PHP или Perl пока не существует, решаем проблему с помощью ImageMagick.

Речь пойдет о PHP инрефейсе к ImageMagick MagickWand, который в репозитарии Fedora называется php-magickwand. Хочу обратить Ваше внимание, что MagickWand API отличается от классического ImageMagick тем что позволяет работать как с элементами растровой графики, так и с элементами векторной графики.

Для php есть еще одна реализация интерфейса к ImageMagick, которая называется IMagick, но функционал этой библиотеки, на мой взгляд, уступет MagickWand.


В первой статье рассмотрим на примерах несколько типичных задач по обработке изображений и сравним результаты с php-gd.



Читать дальше →

PHP mail под Windows

Время на прочтение3 мин
Количество просмотров81K
PHP mail картинка с конвертом

В этой статье я хочу рассказать об отправке почты из php скриптов под Windows.

Америку я, конечно, не открою, но надеюсь, что кому-то эта статья будет полезна или просто сэкономит время.

С точки зрения php программиста отправка почты выполняется с помощью стандартной функции mail(). И вот тут у многих начинающих разработчиков возникает проблема. Скрипт, прекрасно работающий на сервере хостера, выдает ошибки на локальном компьютере.

Обычно эти ошибки имеют примерно такое описание:
Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in E:\www\simplemail\mailer.php on line ......
Читать дальше →

Новая версия редактора Rapid PHP

Время на прочтение2 мин
Количество просмотров3.1K
Достаточно недавно вышла новая версия этого замечательного редактора. Если вы пользуетесь профессиональными интегрированными средами разработки типа Zend Studio или Eclipse, то я думаю что этот редактор может показать просто убогим. Хотя бы по размеру дистра (всего 5,5 Мб).
Однако тем не менее, выпускать его из виду я думаю нельзя. Итак,



Полную характеристик переписывать нет смысла. Ее можно прочитать на странице загрузки.
А вот удобство по своему опыту работы я опишу.
— Подсветка синтаксиса и дописывание слов это думаю и так понятно.
— Очень удобная подсветка скобок {} [] (). точно не ошибетесь если много чего вложено друг в друга. В новой версии появилась еще подсветка HTML блоков, например DIV или P и все все все. Мелочь, а приятно.
— Возможность прямо из программы подключатся к БД. Если честно, то я этим и не пользовался. так, экспериментировал однажды.
— Code Explorer — вообще не представляю как без нее можно было работать. Это вывод структуры программы — функции, классы, переменные, инклуды. А в новой версии прямо в коде можно узнать где была объявлена функция или переменная буквально двумя кликами.
— поиск. достойный. что тут сказать.
— Да и еще масса интересных вещей, упрощающих кодинг будь то верстка или программирование.
— А еще не помню может и раньше было, но там еще есть классная функция форматирования кода. Если по каим-то причинам не были соблюдены табуляции или код чужой и нечитабельный, то это фича облегчит чтение.

А еще этот редактор просто молниеносно загружается. Очень рекомендую, если вы уже были знакомы с этой программой или не работали с ней раньше.

И маааленькая ложка дегтя на дорожку — она условно-бесплатна. разве это остановит нас? :)

Перейти к загрузке Rapid PHP

… немного странно что на офсайте разработчиков в тайтле до сих пор написано Rapid PHP 2007ююю

IP География

Время на прочтение2 мин
Количество просмотров14K
Недавно мне пришлось иметь дело с программой для ведения статистики кликов некой системы обмена объявлений. При щелчке как обычно собиралась информация о клике (на какой странице произошло, во сколько, браузер, ИН объявления и IP). В представлении статистики состояла задача — узнать город из которого произошел переход. Раньше я этим не интересовался особо поэтому только сечас у меня началось более глубокое знакомство с GeoIP системами.

Кроме того как это удалось
Я расскажу еще о некоторых интересных сервисах

Установка memcached под Windows за 5 минут (php5)

Время на прочтение1 мин
Количество просмотров39K
Многие разработчики используют Memcached, систему кэширования различных объектов в оперативной памяти. Устанавливается она очень просто
Читать дальше →

Установка memcached под Windows за 5 минут (php5)

Время на прочтение1 мин
Количество просмотров5.8K
Многие разработчики используют Memcached, систему кэширования различных объектов в оперативной памяти. Устанавливается она очень просто
Читать дальше →

Первая альфа-версия ezComponents 2008.1

Время на прочтение3 мин
Количество просмотров608

Новый релиз РНР, 5.2.6 прошел достаточно незамеченным, в частности, наверное, потому, что несет в себе только исправления ошибок и некоторые обновления включенных в состав компонент. Люди же привыкли ждать более существенных обновлений, о которых можно поговорить, а таким обещает быть следующий, 5.3 дистрибутив. Ну а у нас сегодня есть другой повод для разговора и обсуждения — выход наконец первой альфа-версии набора компонент ezComponents 2008.1. Это пока только первая пробная версия, но ее уже стоит загрузить и начать изучать. А вот что там изменилось и добавилось — об этом сейчас и поговорим. Официальный ChangeLog здесь.

Читать дальше →

Нужен ли в PHP полноценный type hinting?

Время на прочтение1 мин
Количество просмотров2.8K
Относительно недавно был добавлен RFC (Request for comment) с предложеннием ввести type hinting. Обсуждение можно найти тут. В рассылке мнения различные: кто за, кто против, кто за строгую типизацию, кто за то, чтобы оставить все как есть. Как вы считаете, нужна ли такая функциональность в PHP?

Вопросы авторам PHP на PHPConf 2008 29-30мая в Москве

Время на прочтение1 мин
Количество просмотров682

Появилась идея собрать самые лучшие вопросы авторам PHP,
которые приедут пообщаться на PHPConf 2008.

Предлагаю собирать их в этом топике до 15 мая.

P.S. Чур вопрос когда будет goto в PHP не предлагать…

Eval или include?

Время на прочтение3 мин
Количество просмотров9.6K
Один из текущих проектов разрабатываю на собственном фреймворке, параллельно его обкатывая и дописывая. Зачем мне понадобилось изобретать велосипед, и чем он отличается от существующих, напишу когда буду представлять его общественности. Сейчас же хочется поделиться некоторыми мыслями по поводу производительности и заодно выслушать мнения коллег. Возможно, мои наблюдения будут полезны и тем, кто не использует фреймфорки.

Когда пришлось реализовывать дерево комментариев, столкнулся с необходимостью рекурсивного вызова представления (view в MVC). Так как представления у меня, да и практически везде, — это обычные файлы с кусками HTML-кода и возможностью вставки PHP, то подключаются они с помощью include. Мне стало не по себе, когда представил как этот include вызывается рекурсивно сотни раз. Первая мысль — засунуть файл представления при первом запросе в память и потом выполнять его через eval. Такой подход позволит кешировать код представлений, и даже хранить его в БД. Так как eval кушает только PHP, а представления у нас чистым PHP-кодом не являются, то обрамляем содержимое в '?>' и '<?php'.

Тесты и выводы

PHP — ООП или процедурный подход

Время на прочтение5 мин
Количество просмотров99K
PHP один из самых популярных скриптовых языков программирования. Почти 60% веб серверов используют PHP.Миллионы веб-сайтов и веб-приложений разрабатываются на PHP каждый месяц.

PHP изначально разрабатывался как простая замена языку Perl, и уже спустя пару лет он стал чрезвычайно мощным и популярным. Язык PHP, сам по себе очень похож на ANSI C.
Одна из причин почему PHP стал таким популярным это его короткий период обучения.

Изучение PHP абсолютно не тяжёлое занятие, особенно если вы хорошо знакомы с синтаксисом Java или C.

Так как писать PHP скрипты достаточно просто, любой может написать PHP код без соблюдения каких-либо соглашений и смешивая уровень представления с бизнес логикой (это одна из основных причин существования большого количества неуправляемых проектов). Потому что в PHP не обязательно строгое соответствие соглашений написания кода, с годами когда проект становится всё больше и больше, он превращается в громадное неуправляемое приложение.
Читать дальше →

Ближайшие события

Зачетный аутсорсинг PHP проекта

Время на прочтение1 мин
Количество просмотров818
Достался один проектик, написанный румынскими аутсорсерами для немцев.

В следующей процедуре румыны проверяют, дал ли пользователь допустимое имя таблице для MySQL (имя вводится в форму, по нему создается таблица).
Читать дальше →

А так ли нужен static?

Время на прочтение3 мин
Количество просмотров20K
Довольно часто в последнее время читал разные статьи на тему оптимизации, во многих из них писалось о том, что если функция используется как статическая, то с точки зрения оптимизации лучше перед ее объявлением написать модификатор static.
Читать дальше →

Debugging PHP applications with xdebug

Время на прочтение8 мин
Количество просмотров45K
Добро пожаловать на 4 часть повествования о xdebug. Сегодня мы попытаемся разобраться в отладке PHP кода с помощью xdebug. В данной статье мы полагаем, что вы уже давно установили xdebug на вашу систему, если нет первая статья серии опишет вам как это сделать.
Читать дальше →

Позднее статическое связывание в PHP (Часть II: Практика)

Время на прочтение3 мин
Количество просмотров11K
phpПервую часть читайте здесь.

Теперь приступим к практике. Наиболее показательным примером использования LSB, по-моему, является случай, когда у вас есть набор классов выполняющих похожие действия. В терминах веб-разработки мы часто встречаемся с такими задачами при обращениях к таблицам базы данных, особенно в ORM системах. Все ваши объекты для работы с таблицами будут похожи по сути, но при этом будут иметь собственный функционал ( и, соответственно, свои подклассы).
Читать дальше →

Позднее статическое связывание в PHP (Часть I)

Время на прочтение2 мин
Количество просмотров36K
phpПозднее Статическое Связывание (Late Static Binding, LSB) является бурно темой обсуждений последние три года в кругах разработчиков PHP (и наконец мы его получили в PHP 5.3). Но зачем оно нужно? В данной статье, как раз и будет рассматриваться, как позднее статическое связывание может значительно упростить ваш код.

На встрече разработчиков PHP, которая проходила в Париже в ноябре 2005 года, тема позднего статического связывания официально обсуждалась основной командой разработчиков. Они согласились реализовать его, наряду со многими другими темами, которые стояли на повестке дня. Детали должны были быть согласованы в ходе открытых дискуссий.
Читать дальше →