Думаю, каждый разработчик сталкивался с проблемой развертывания своего сайта/приложения на живой сервер. И, думаю, каждый мечтает о такой кнопочки, нажав которую все его изменения попадали бы на сервер.
Capistrano — это инструмент для быстрого развертывания и выполнения задача на удаленной машине. Изначально он был разработан для развертывания проектов на Ruby On Rails, но как оказалось может применяться для чего угодно. С помощью capistrano можно доставлять PHP, Python, NodeJS проекты.
Давно не писал что нового появилось в PHP 5.4, было совсем не до этого. А тем временем добавили очень интересную вещь — встроенный веб-сервер. Само предложение как обычно появилось в Wiki и обсуждалось там совсем немного.
Зачем оно вообще нужно?
А очень просто, мы наконец-то можем забить на установку всяких Apache/Lighttpd и прочих на машину разработчика, так как все что нужно будет здесь. Очень удобно получить проект, ввести что-то типа:
После установки OS X Lion (10.7) столкнулся с неприятной проблемой, установка связки PHP+MySQL как я делал это раньше не работает. И как оказалось, проблема в MySQL, исходники которого еще не готовы к новой ОС от Apple.
После некоторых размышлений и прочтений похожих проблем в интернете, я нашел для себя следующее решение.
Помните я рассказывал о новых возможностях в следующей версии PHP, тогда я еще говорил, что мне очень не хватает Traits (буду называть их примеси). Оказывается уже несколько месяцев как их добавили в транк, поэтому с нетерпением жду релиза.
Документации на официальном сайте пока еще нет, но кое-что уже сейчас можно увидеть в RFC (правда из-за security notice оно сейчас закрыто) и из рассылки internals.php.
В очередной раз обновил свой MacBook Pro 15”, и как обычно понадобилось установить PHP не стандартной конфигурации. Обычно я использовал MacPorts для установки необходимых мне пакетов, но он ужасен.
Минуточку. А вообще зачем мне все это? Ведь, скажите вы, в Snow Leopard уже есть установленный и готовый к работе PHP 5.3. Поэтому привожу примерный список почему я собираю PHP ручками:
В течении последних нескольких недель в следующую версию PHP были включены весьма интересные возможности, это: “Array dereferencing support” и “Scalar type hints”. Итак, по порядку.
Array dereferencing support.
Эту возможность сообщество разработчиков просило очень давно, но каждый раз она откладывалась. Только недавно она была включена в исходники. Вот что она добавляет.
В дополнение к массивам, классам и интерфейсам в PHP была добавлена возможность указывать значения простых типов, таких как int, float, boolean в методах и функциях. Это позволит PHP быть более типизированным языком нежели сейчас.
<?php
function print_float(float $f) {
echo $f . "\n";
}
for ($i=1; $i<5; $i++) {
print_float($i / 3);
}
?>
Такая возможность это очень здорово, теперь интерфейсы могут быть полноценнее.
PHP идет правильным путем, но уж очень медленно. Мне очень сильно нехватает поддержки Traits, если по простому это возможность наследовать класс от нескольких классов одновременно. Да и с релизами у них сейчас бардак, до сих пор не понятно будет 5.4 или 6.0, а если будет последняя то видимо без Unicode. :(
Исключения (Exception) появились в PHP с версии 5.0, они добавили хорошие возможности по обработке ошибок. Вместе с исключениями в PHP появилась стандартная библиотека классов (SPL), сейчас она содержит 13 готовых классов для обработки исключений.
Сегодня, вышел первый alpha релиз новой версии Zend Framework под номер 1.10. В этом релизе меня заинтересовало очень много новых компонентов и несколько значительных доработок.
Вот список компонентов которые мне приглянулись и которые я буду использовать в работе после релиза: