Компилировать расширения PHP под Windows нет так уж и просто. Но задача вполне выполнимая.
Все заметки с тегом «PHP»
-
Как скомпилить libevent для PHP под Windows
22 мая 2011
6 комментариев -
PHP, построение URL
20 мая 2011
13 комментариевПри работе с разными API (и не только) требуется построить URL. На входе имеем массив параметров имя-значение, на выходе получаем URL. Решение очень простое:
function getUrl($url, $params = array()) { return $url.'&'.http_build_query($params); } // используем так echo getUrl('http://open.mapquestapi.com/nominatim/v1/search?format=json', array('q' => 'Olympiaturm, Spiridon-Louis-Ring 7, München 80809'));
UPD:
http_build_url. -
Короткий echo в PHP 5.4
19 мая 2011
14 комментариевПохоже, в 5.4 и последующих версиях PHP собираются включить короткий
echoпо умолчанию и сделать его независимым отshort_tags. Меня лично данное известие радует$username
выглядит гораздо приятнее, чем
echo $username
Единственное, что пока останавливает от повсеместного использования более короткого синтаксиса — необходимость писать продукты под дефолтные конфиги PHP. Хотя, например, в коде этого блога как раз используется короткий
echo. -
PHP PECL под Windows
7 мая 2011
20 комментариевЕсли вы работаете с PHP под Windows или просто разрабатываете в Windows, как я, то наверняка вы знакомы со страничкой http://downloads.php.net/pierre/, которая временно-постоянно заменяет PECL для Windows и на которой можно найти свежие билды различных расширений.
Конечно, найти там нужное не так просто, если не знать, что именно вам нужно. Если у вас последние версии PHP (начиная с 5.3.6) для Windows и если вы не собирали их самостоятельно, можно смело игнорировать всё что помечено как
vc6илиx64. Далее смотрим,thread safeли у вас версия PHP. Если не уверены, то можно посмотреть, имеется ли у васphp5ts.dll. Если да, версияthread safeи расширения надо выбирать только с пометкойts. После этого обычно остаётся пара вариантов: стабильная версия и собранные из текущего svn/cvs кода.С некоторыми расширениями, конечно, приходится повозиться. Например, APC. После очевидного отбора остаётся прилично вариантов:
- php_apc-20110109-5.3-vc9-x86.zip
- apc-igbinary-fastlz-snap20110301-5.3-ts-vc9-x86.zip
- php_apc-3.1.8-dev-+igbinary-1.1.2-dev-5.3-ts-vc9-x86.zip
- php_apc-3.1-5.3-svn20101116-vc9-x86.zip
- php_apc-3.1.5-5.3-vc9-x86.zip
Мне было некогда разбираться, взял первый попавшийся
php_apc-20110109-5.3-vc9-x86.zipи пару дней мучался с тем, что сервер время от времени просто переставал отвечать на запросы. Потом, методом исключения, нашёл виновника и проверил все остальные варианты:- php_apc-20110109-5.3-vc9-x86.zip — время от времени вешается.
- apc-igbinary-fastlz-snap20110301-5.3-ts-vc9-x86.zip — сразу рушит апач.
- php_apc-3.1.8-dev-+igbinary-1.1.2-dev-5.3-ts-vc9-x86.zip — стабильно.
- php_apc-3.1-5.3-svn20101116-vc9-x86.zip — стабильно, но есть 3.1.5.
- php_apc-3.1.5-5.3-vc9-x86.zip — стабильно, но есть 3.1.8.
т.к. 3.1.8 оказалась вполне стабильной, остановился на ней. Кстати, внутри там:
- php_apc-win7.dll — для Windows 7.
- php_apc-xp.dll — для XP.
- php_igbinary.dll — альтернативный сериализатор. Штука хорошая, но что он делает в архиве с APC я немного не понял.
-
PhpStorm 2.1 EAP build 107.21
29 апреля 2011
16 комментариевУже давно не писал про EAP PhpStorm потому как просто не успевал. Уж очень шустро он развивается. А произошло действительно много всего.
Во-первых был выпущен апдейт 2.0.1, в котором мне лично понравилось, кроме всего остального, следующее:
- Добавили рефакторинг «Introduce Constant».
- Наконец, IDE стала сообщать, что у нас в проекте несколько одноимённых классов и автодополнению плохо. Лучше бы, конечно, дополняло как NetBeans, из всех, но и это уже очень хорошо.
Через некоторое время возобновилась EAP:
- Добавили рефакторинг «Extract function/method».
- Прилично улучшили инспекции.
- В CSS стали автодополняться недавно использованные цвета, что очень сильно экономит время.
- Добавили удобный способ исключить файл из индекса.
- Добавили поддержку
.htaccess. - Добавили удобную подсветку вложенных блоков в HTML.
- Добавили поддержку Phing.
Ну и свежий EAP тоже порадовал. Особенно:
- Теперь стало возможно делать diff для директорий. Похоже, скоро можно будет избавиться от отдельного внешнего инструмента.
- Улучшили навигацию по конструктору и поиск использования класса.
От практики обновления EAP-билдов автоматически, похоже отказались, поэтому установить придётся самостоятельно.
-
Сообщения об ошибках и хороший код
17 апреля 2011
22 комментарияКак ни странно, очень многие разработчики пренебрегают более строгими режимами работы тех же PHP и MySQL. Странно это, прежде всего, потому, что включение таких режимов позволяет получать больше информации о потенциальных ошибках в коде и, соответственно писать код лучше.
В PHP самый строгий уровень ошибок можно получить записав в php.ini:
error_reporting = -1
Это позволяет выявить такие слабые места, как, например, использование переменных без их объявления. Да и банальные описки выявляются сразу, а не после пары часов жёсткого дебага.
В MySQL тоже есть строгий режим, который не позволяет, например, вставить строку длиной в 200 символов в поле
varchar(20). В «умолчательном» режиме MySQL молча вставит первые 20 символов, выкинув остальные. В строгом — получим соответствующую ошибку. Включается этот режим черезmy.cnf:[mysqld] sql-mode = "STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE"
Все значения
sql-modeможно подсмотреть в официальной документации. -
Какой PHP фреймворк вы используете и почему?
23 марта 2011
58 комментариевНа хабре появился довольно интересный опрос с обсуждением на горячую тему. Ответы немного удивили:
- Yii на втором месте после Zend Framework. Думал, там будет Symfony или CodeIgniter.
- Очень многие выбрали «самописный фреймворк». Дело, конечно, хорошее. Опыт наберётся быстро. Но для работодателя коммерчески невыгодно. Конечно, если задачи очень специфичны, вроде создания игр, то свой фреймворк может быть оправданным решением.
- Подавляющее большинство «пишет на PHP, но не использует фреймворки». То ли лапшекодеров на хабре много, то ли все делают игры… не ясно.
-
PHP RFC: встроенный вебсервер
3 марта 2011
15 комментариевВ RFC PHP попала новая идея: встроенный вебсервер. Штука определённо замечательная: можно будет разрабатывать не запуская тот же Apache и не занимаясь его настройкой. Пока реакция разработчиков положительная, поэтому можно надеяться, что нововведение будет в ядре.
Запускать это дело предлагается очень просто:
php -S localhost:8000 docroot
При этом можно использовать роутинг-скрипт, заменяющий, например mod_rewrite и выглядящий так:
if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) return false; // отдаём как есть else ...
К странице в wiki прилагается патч, так что любопытные могут собрать PHP из исходников и попробовать нововведение.
-
Комментарии в разметке
25 февраля 2011
13 комментариевИногда в HTML встречаются комментарии, не особо предназначенные для посторонних глаз или просто лишние. В лучшем случае это:
<!--news list start--> туча кода <!--news list end-->
Конечно, можно их просто удалить, но такие комментарии всё-таки полезны разработчику. Поэтому, вместо удаления лучше сделать их средствами серверного языка:
// news list start туча кода <?php // news list end
или
<%-- news list start --%> туча кода <%-- news list end --%>
-
PhpStorm 2
15 февраля 2011
10 комментариевВышел второй релиз отличной IDE для PHP, направленный, прежде всего на поддержку современных языков и технологий.
- Полная поддержка PHP 5.3 с пространствами имён и замыканиями.
- Поддержка Zend Debugger. При этом его не нужно настраивать.
- Командная строка с поддержкой Zend_Tool и Symfony в комплекте.
- Редактор SQL-запросов с возможностью их запуска, а также просмотра и изменения данных результата.
- Поддержка ECMAScript 5 «use strict».
- Поддержка LESS и SASS/SCSS.
- Relax NG для XML.
- Поддержка Mercurial.
- Интеграция с трекерами GitHub, PivotalTracker и RedMine.
Новый интерфейс для всех платформ.
- Наиболее значимые изменения в картинках и видео
- Пробуем и обновляемся


