Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

php5 и utf8

Чулан
Собрался делать один проект в юникоде.
Как вообще у php5 с utf8?
Какие меня ожидают подводные камни?
Какие функции работают, какие нет?
Всего голосов 7: ↑5 и ↓2 +3
Просмотры226
Комментарии 8

Рекурсия при помощи self

Чулан
Интересные и порой необычные свойства скрывает от документирования пятая версия PHP. Языковая конструкция self по определению служит для работы со статическими методами и свойствами классов. Но ее можно использовать и не по назначению.

Объявляю себя ...


Многие сталкивались с проблемой переименования класса (Забываешь переименовать конструктор, но ошибки нету и все вроде работает, но как-то кривовато). Именно чтобы решить эту проблему в PHP5 ввели стандартное имя для конструкторов __construct
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры362
Комментарии 11

GoPHP5 или хватит заниматься ерундой

Чулан
Ссылка на gophp5.org пару раз уже здесь проскакивала. Немного по-русски:

Несмотря на то, что критические исправления ошибок безопасности для ветки PHP 4.4 будут выходить до 8 августа 2008 года, ряд популярных открытых проектов, написанных на PHP, заявили о полном прекращении поддержки данной ветки в своих проектах.

Акция GoPHP5 проводится в целях стимулирования перехода на ветку PHP 5, которая по прежнему не обрела должной популярности, несмотря на полное прекращение развития PHP 4. К инициативе присоединились такие проекты, как Drupal, phpBB, IceBB, MyBB, PEAR, phpMyAdmin, phpPgAdmin, Symfony, Typo3 и WordPress. Все версии принявших участие в акции проектов, выпущенные после 5 февраля, будут требовать для своей работы установки PHP 5.2.

Например, на web-серверах в зоне .ru, c активным mod_php, число установок версии PHP4 в два раза превышает PHP5.


Сложно оценить однозначно эту инициативу — лично у меня все еще остается ощущение, что php5 не готов к полноценному использованию, но где-то в глубине я понимаю, что он вполне уже stable. Видимо дело лишь в привычке.

Поэтому я оставляю php4 там, где все давно отлажено и работает, и использую php5 при необходимости там, где этого требует ситуация (новые классы на php5, аналогов которых на четверке нет и т.д.).

А как поступаете вы?

UPD: забыл линк на источник — www.opennet.ru/opennews/art.shtml?num=13993
Всего голосов 15: ↑13 и ↓2 +11
Просмотры393
Комментарии 17

Как забыть об используемой версии PHP

Чулан
В дополнение к предыдущему посту.

Многим из нас (особенно фрилансерам) приходится иметь дело с несколькими проектами, которые могут располагаться на разных серверах с разными версиями PHP. В этом случае может возникать проблема с отсутствием привычных функций или их неверной работой.

Пример.
Буквально только что мне потребовалось немного автоматизировать работу контент-менеджера одного из подшефных сайтов. Достаточно бысто был найден нужный класс (пост через XML-RPC), добавлена необходимая функциональность. Проверка (локальная) показала, что все работает отлично. Но после установки на сервере выяснилось, что класс был написан для PHP5 (на сервере — одна из ветки 4.4). После беглого просмотра выяснилось, что проблема в единственной функции — file_get_contents, в которую была добавлена возможность получить файл методом POST, например.


В таких случаях может помочь пакет PHP_Compat, основная задача которого — обеспечить совместимость с более новыми версиями PHP.

В случае из примера выше, я просто достал из пакета нужную функцию, вставил ее в код и все заработало. 30 секунд вместо переписывания чудого кода и отладки получившегося.


Использовать — проще простого. Можно просто взять нужную функцию. Можно использовать вызовы типа:
require_once 'PHP/Compat.php';
PHP_Compat::loadFunction('file_get_contents');


или

require_once 'PHP/Compat/Function/file_put_contents.php';
Всего голосов 11: ↑9 и ↓2 +7
Просмотры214
Комментарии 15

Установка и настройка Apache2+PHP5+MySQL+XDebug & Eclipse+PDT+XDebug в Ubuntu 7.10

Настройка Linux
В этом топике я расскажу как установить и настроить Apache2 + PHP5 + MySQL + virtual hosts + xdebug, а также XDebug в Eclipse+PDT.
Читать дальше →
Всего голосов 45: ↑39 и ↓6 +33
Просмотры150.1K
Комментарии 96

Страшные сказки про PHP5, рассказанные на ночь…

PHP
1) Какой бы ерундой вы не занимались с PHP, узкое место _всегда_ — БД. PHP — он как Буратино — тупОЙКАк… дрова. Lighttpd и Nginx позволяют разнести его по множеству физических серверов на раз без шума и пыли. Зарплата адекватного спеца по PHP в Москве — 30-45 тыс. рублей в месяц, стоимость аренды нормального сервера — от 3 тыс. рублей в месяц. А вы не знали ;)?

2) Какой бы ерундой вы не занимались — 30-60% производительности (возможно и больше) PHP-кода решит правильно выбранный и настроенный акселератор.

3) Серебряной пули нет. Не важно, какой концепт вы применяете — строгое ООП (в стиле Zend Framework), функции в стиле PHP4 (или ограниченное ООП) или вообще лапшу в стиле «PHP для чайников» — ни одна из этих парадигм не даст ощутимый прирост производительности, если конечно ваши программисты не выше как минимум на голову.
Читать дальше →
Всего голосов 182: ↑154 и ↓28 +126
Просмотры2.4K
Комментарии 287

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

PHP

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

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

P.S. Чур вопрос когда будет goto в PHP не предлагать…
Всего голосов 23: ↑21 и ↓2 +19
Просмотры519
Комментарии 135

Вышел релиз eZ Components 2008.1

PHP
Сегодня после обкатки релиз-кандидата вышел официальный релиз eZ Components 2008.1. Пересказывать changelog не буду, попробую сделать краткое введение в eZ Components.

Итак, eZ Components — это высококачественный объектно-ориентированный web-фреймворк, написанный на PHP5, распространяемый по New BSD License. О нем уже писали на Хабре. Описываемая версия требует PHP >= 5.2.1

Читать дальше →
Всего голосов 27: ↑22 и ↓5 +17
Просмотры746
Комментарии 33

Видео с PHPConf 2008 — ~20 часов видео

PHP
Всего голосов 11: ↑8 и ↓3 +5
Просмотры544
Комментарии 13

Symfony

Symfony
Перевод
Очень нравится этот framework.
Буду переводить часть информации по мере её прочтения. Думаю, что это будет полезно не мне одному. В свою очередь предлагаю обсуждать и дополнять всем, кому эта тема и framework не безразличен

Chapter 12 — Caching


Одним из путей ускорения работы web-based приложения является запоминание части или всего HTML документа, для повторной его выдачи при следующих запросах. Эта технология известна как кэширование. Может применяться как на серверной части, так и на клиентской.
Читать дальше →
Всего голосов 12: ↑9 и ↓3 +6
Просмотры1.5K
Комментарии 8

Яндекс поиск на вашем сайте.

PHP
Приведу пример класса, который можно использовать в качестве поисковика на вашем сайте.
Для работы класс использует сервис Яндекс.XML. В свободном режиме они разрешают использовать до 1000 запросов в день. Условия использования сервиса на xml.yandex.ru

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

С помощью Яндекс.XML вы можете предлагать своим пользователям:
  • поиск по вашему сайту (в той мере, в какой этот сайт проиндексирован Яндексом);
  • поиск по сети или ее части (регион, отрасль), результаты которого могут показываться на вашем сайте и в вашем дизайне, и сервисы на его основе — Яндекс.XML открывает большие возможности для исследователей поисковых систем и преподавателей;
  • поиск изображений, опубликованных в сети.

Читать дальше →
Всего голосов 60: ↑49 и ↓11 +38
Просмотры6.3K
Комментарии 26

Кросс-доменные Cookie

Чулан
Рассмотри случай когда у вас есть несколько поддоменов на одном сервере. Нам нужно чтобы сессия хранилась на сервере и читалась всем скриптами на разных поддоменах.
Читать дальше →
Всего голосов 13: ↑11 и ↓2 +9
Просмотры2.2K
Комментарии 5

Конвертируем html в pdf

Разработка веб-сайтов
dompdf_simple

Dompdf — класс написанный на PHP 5 для преобразования HTML в PDF.
Проблема конвертации html в pdf встречается не так часто, но все же возникает у некоторых веб-мастеров.
Читать дальше
Всего голосов 91: ↑68 и ↓23 +45
Просмотры15.6K
Комментарии 45

Барахолка на Kohanaphp. Часть 1

Kohana
Делаем то же самое что и здесь, только используя Kohanaphp:

Отличия kohanaphp от codeigniter:

* Использует PHP 5 ООП
* Абстракция базы данных, используя SQL helpers
* Разнообразные драйвера сессий (native, database и cookie)
* Обработчик событий
* Основан на базе CodeIgniter
Получить kohana можна на сайте kohanaphp.
много кода с комментариями под катом
Всего голосов 15: ↑10 и ↓5 +5
Просмотры1.1K
Комментарии 5

SMS Уведомления + Логирование событий в Google Calendar на PHP

PHPZend Framework
Навеяло: Чудеса автоматизации или как отправляют SMS настоящие гики.
Если люди делают такие изощрения — значит сильно надо.

За пару часов был разработан класс для добавления в Google Calendar событий. А уже календарь гугла станет нам слать СМСки.
Читать дальше →
Всего голосов 25: ↑22 и ↓3 +19
Просмотры1.2K
Комментарии 18

Сервер дома — AMD, Debian x64, Bind9, Apache 2, PHP5, MySQL5, Trac, Subversion и море удовольствия

Чулан
Шило в известном месте всё никак не даёт мне покоя.
И решил я поэкспериментировать с установкой сервера дома.

Итак, дано:

1. Домашний интернет с внешним ip на роутере, канал туда/обратно — 8 мбит, провайдер — QWERTY *
2. Бюджет не больше 10 тысяч рублей — чем меньше, тем лучше. **
3. Жгучее желание экспериментов и чего-нибудь эдакого ***

* К сожалению, мой дом не подключает Корбина, у которой более широкие каналы. Приходится довольствоваться тем, что есть
** Получилось путём более-менее реального подсчёта стоимости комплектующих на среднестатический компьютер
*** Для тех, кто хмыкнет и скажет — «эка невидаль, я такое регулярно делаю» — я не так часто что-то настраиваю, больше пишу под уже настроенное, и для меня это чистой воды развлечение — что-то сделать своими руками=)

Ну, все процедуры тут, под катом.

Сразу хочу сказать, что у меня это работает — так, как есть. Дополнительно с бубном я не плясал — но тут вытяжки из моих гуглений и мануалокурений.

Вероятно, что-то можно настроить более гибко или качественно, и я крайне буду рад советам или решениям=)


Читать дальше →
Всего голосов 44: ↑38 и ↓6 +32
Просмотры4.1K
Комментарии 66

Тюнинг Zend Framework + Doctrine

Zend Framework

Скрещиваем двух «зверей»



В принципе, скрестить Zend Framework с Doctrine не так уж сложно. Но прежде поговорим о подготовительной работе. По мнению автора, предлагаемую по умолчанию структуру файлов проекта Zend Framework можно сделать чуть более оптимальной.

Так выглядит структура файлов проекта Zend Framework по умолчанию:

/
  application/
    default/
      controllers/
      layouts/
      models/
      views/
  html/
  library/

Читать дальше →
Всего голосов 44: ↑39 и ↓5 +34
Просмотры2.4K
Комментарии 29

PHP 5.2.8 Released

PHP
Как все помнят, с релизом PHP 5.2.7 вышла некоторая лажа, версия была убрана, а на официальном сайте рекомендовалось подождать версии 5.2.8. Дождались, товарищи, поздравляю :)

Справедливости ради надо отметить, что, как обнаружил symbix, исходники PHP 5.2.8 выложили в свободный доступ несколько раньше, чем появился официальный релиз.

Хотелось бы, кстати, напомнить, что это не первый крупный косяк с релизом PHP5. В прошлый раз версия PHP 5.1.3 в качестве критического обновления вышла в тот же день, что и PHP 5.1.2.

Так и живём :)
Всего голосов 37: ↑27 и ↓10 +17
Просмотры582
Комментарии 11

История одного класса для обработки ошибок.

Чулан

Предисловие (Смело можно пропускать)



Приятного времени суток.

У меня возникло желанием поделиться с вами одной историей. Историей возникновения класса обработки ошибок. Почему просто не привести класс “as is” и не позволить вам судить о его достоинствах и недостатках? Причина проста. В этом случае не возможно будет понять, почему он стал именно таким, каким является. Невозможно будет обнаружить ошибки в логике его создания. Невозможно понять схожа ли у вас ситуация с моей и возможно ли для вас его использование или, возможно, лучше обратить свое внимание на другой класс обработки ошибок. Благо, таковых вы найдете множество.

А с какого такого перепугу я вообще занялся сочинением собственного класса обработки ошибок? Ведь есть масса наработок в этой области. Наработок серьезных, очень неглупых людей. Причина проста. К созданию этих классов привели разные причины, создание этих классов преследовало разные цели. И, как всем нам хорошо известно, велосипедов мало не бывает и на вкус они все разные.
Читать дальше →
Всего голосов 18: ↑5 и ↓13 -8
Просмотры419
Комментарии 8