Слід звернути увагу
Так вже сталось, що я іноді пишу щось в неприємному ключі про мову php. :) Хоча й сам дуже часто нею користуюсь. І як я з часом розумію, причина тут не тільки в тому, що досить багато роботи є для php-програміста, а ще й в тому, що деякі речі дуже просто зробити саме на php. Можливо на python чи ruby ще простіше, однак оскільки я вже дуже звик до php, то сам можу попрацювати в якості такого собі справочного матеріалу, що може багато розповісти і про синтаксиси виклику функцій і про бібліотеки :) Тому для того, щоб написати маленький скриптик на декілька десятків рядків мені в більшості випадків не треба думати, як з python чи ruby.
Вже давно вийшов php 5.3 і хоча більшість хостерів ще не планують перехід на нього, однак як було з взагалі з 5ою гілкою php він раніше чи пізнціше стане основним на більшості хостингів. Тому хочу звернути вашу увагу на декілька аспектів, що можуть стати неприємними сюрпризами при переході
- Підключення до БД.
- Не знаю чи всюди, однак в збірці під MacOS X php 5.3 вимагає вказувати порт. Наприклад так:
$conn = mysql_connect('localhost:3306', 'username', 'password');Інакше отримаємо помилку, що так і так, а підключитись не вийде. Підозрюю, що причиною тому є новий драйвер для MySQL, що працює тепер напряму, без використання libmysl.
- Об'єми пам'яті
- Знову ж таки при роботі з БД MySQL виникає проблема з виходом за ліміт доступної для роботи пам'яті. На тому коді, що цілком нормально працював з версією 5.2
- Магічні методи
- Те, що по мені серйозно вдарило, так це необхідність того, щоб
__get,__set,__unset,__issetбули нестатичними. Те що вони тепер мають бути завжди public є досить логічним кроком, а от з неможливістю бути статичнми щось не так. Тепер доречі поряд з методом__callз'явився__callStatic(ось тут я цылком погоджуюсь). - Прощавай eregi та split
- Якщо Ви користувались запість perl-сумісний регулярних виразів posix-сумісні, то тут Вам буде очікувати неприємний сюрприз з виносом цього функціоналу за рамки основної поставки php. Досить непогано, що функціонал що дублюється починає видалятись з основної поставки php - навіщо зайві функції, що додають плутанини?
- Массиви та об'єкти
- Тепер масиви та об'єкти відрізняються більше, тому деякі методи для роботи з масивами, що раніше працювали з об'єктами, відтепер будуть працювати лише з масивами.
- magic quotes
- Magic quotes відмічені для остаточного видалення, тому використання всіх функцій та інструкцій в php.ini буде викликати E_DEPRECATED
- Робота з сесіями
session_register(),session_unregister(),session_is_registered()теж відмічені для видалення
Тепер в php можна увімкнути систему циклічної збірки сміття (garbage collector). Про те, наскільки добре чи погано вона працює стане відомо пізніше, однак в цілому враження від php 5.3 окрім перших трьох пунктів з переліку непогані. Здається, що php рухається у вірному напрямку і має всі шанси перетворитись раніше чи пізніше а досиь красиву мову, на яку навіть я перестану нарікати :)
Ну і ще хочу додати вже не про php 5.3. Доволі давно я присав про роботу з числами в php. Одним з пунктів мого невдоволення була наявність переводу числа в рядок в залежності від локалі. Тоді я якось не забув про функцію sprintf, що спеціально призначеня для форматного виведення данних. І тим паче забув (та що й казати, навіть і ніколи не звертав уваги) про те, що для виведення дійсних чисел є два формати %f та %F. Різниця в тому, що перший залежить від встановленої в скрипті локалі, а другий ні.
Так що, вдалого написання коду. Дякую за увагу!



