PHP 5.3: что пых грядущий нам готовит?
февраля 22, 2008 by ptchinkТо о чем так долго говорили большевики…
Пространства имен
/* Серое и унылое настоящее */ .Людям, использующим в названии классов идеологию, схожую с идеологией Zend Framework, данная фича очень понравится. Возможно она “под него” и вводилась ;) К сожалению не смог найти информацию о том, можно ли будет повесить обработчик на команду use, а следовательно анализировать и всячески инициализировать пространства.mysqlnd (MySQL native driver)
Наконец то в РНР появится замена для libmysql, причем “заточенная” под PHP на C-шном уровне. Напомню, что в самом начале 5-ой ветки libmysqli пришлось убрать из ядра по лицензионным соображениям. mysqlnd же выпускается под лицензией PHP . Вы наверное уже обрадовались, что из-за нового API, сможете выбить из начальства время на review всего кода, работающего с БД? К сожалению я не знаю код символа изображающего фигу, сейчас бы пригодился. mysqlnd это низкоуровневая С-шная библиотека для работы с базой данных, а не новое расширение для PHP. mysqlnd уже “понимает” API ext/mysqli, поддержка PDO/MySQL сейчас пишеться, а поддержки ext/mysql не будет.Уже приведены бенчмарки , и их результаты мягко говоря радуют.
Позднее статическое связывание
Проще всего текущее бедственное состояние будет пояснить на примере:ActiveRecord , и приводит к использованию грязноватых хаков ;)ActiveRecord :$posted_articles = Articles::findByIsPosted(true); $new_members = Member::findByRegistrationDateLessWhat($today);И все это без единой дополнительной строчки в классах Article и Member!
Когда же появиться нативная функция для преобразования camel case в underlines :(
Динамические вызовы статических методов
$method = 'callAnotherTime'; FooFactory :: $method('Я вас каждый день вызывать буду!');Практического применения я вот так сходу найти не смог, но но думаю оно как суслик, я его не вижу, а оно есть
Новый уровень ошибок E_DEPRECATED
Новый уровень позволит заранее начать избавляться от функционала, который впоследствии не будет поддерживаться
Конфигурационные файлы
- конфиги теперь можно делать для конкретной директории, а не использовать для этого .htaccess и php_value/php_admin_valie
- в php.ini добавлены секции для конкретных директорий. Их опции не могут переопределяться ни в скриптах, ни в конфигурационных файлах директорий
- сообщения об ошибках в конфигурационных файлах теперь более “говорящие”
- добавлена поддержка ключей для массивов
Прочие изменения
- в расширение openSSL добавленна поддержка алгоритма Диффи-Хеллмана , который необходим для тех, кто работает с OpenID.
- функция get_opt() теперь кроссплатформенная
- в расширение sqlite добавленна поддержка Sqlite3
- сделано несколько улучшений в SPL
- добавлена константа __DIR__, которая заменит dirname(__FILE__)
UPD : добавлена информация о __DIR__
Иcтoчник: PHP 5.3: что пых грядущий нам готовит?
Posted in Новости |