Відмінності між версіями «11 Недоліки PHP»

Матеріал з Wiki TNEU
Перейти до: навігація, пошук
 
Рядок 1: Рядок 1:
#Погана рекурсія
+
===Погана рекурсія===
 
Рекурсія є механізмом, в якому функція викликає сама себе. Прикладом функції, використовуючи рекурсії швидкого сортування . На жаль в PHP не дуже добре реалізована рекурсія. Зєєв, один з розробників PHP, говорить наступне: ". PHP 4.0 використовує стек для інтенсивного потоку даних, а не за допомогою накопичування. Це означає, що його толерантність рекурсивних функцій значно нижче, ніж в інших мовах."
 
Рекурсія є механізмом, в якому функція викликає сама себе. Прикладом функції, використовуючи рекурсії швидкого сортування . На жаль в PHP не дуже добре реалізована рекурсія. Зєєв, один з розробників PHP, говорить наступне: ". PHP 4.0 використовує стек для інтенсивного потоку даних, а не за допомогою накопичування. Це означає, що його толерантність рекурсивних функцій значно нижче, ніж в інших мовах."
#Багато PHP-модулів не є потокобезпечними
+
===Багато PHP-модулів не є потокобезпечними===
 
Пару років тому, Apache випустив версію 2.0 свого веб-сервера. Ця версія підтримує багато-режимів, в якому одну частину програмного забезпечення, можна запустити кілька разів одночасно. Творці PHP сказати, що ядро PHP є поточне, тільки непрофільні модулі найчастіше такими не є. Але дев'ять з десяти раз використовується такий модуль у вашому PHP-скрипті, роблячи ваш сценарій не підходящим для багатопотокового режиму Apache. Погана підтримка багатопотокового режиму PHP часто розглядається як причина Apache 2 все ще не прищепилася.
 
Пару років тому, Apache випустив версію 2.0 свого веб-сервера. Ця версія підтримує багато-режимів, в якому одну частину програмного забезпечення, можна запустити кілька разів одночасно. Творці PHP сказати, що ядро PHP є поточне, тільки непрофільні модулі найчастіше такими не є. Але дев'ять з десяти раз використовується такий модуль у вашому PHP-скрипті, роблячи ваш сценарій не підходящим для багатопотокового режиму Apache. Погана підтримка багатопотокового режиму PHP часто розглядається як причина Apache 2 все ще не прищепилася.
#PHP є "калікою" з комерційних причин
+
===PHP є "калікою" з комерційних причин===
 
Продуктивність PHP може бути збільшена до 500% за допомогою кешування. Так чому ж не будують кешування в PHP? Тому що  PHP виробник продає свій власний прискорювач Zend і, звичайно, вони не хочуть, щоб пожирали їх власні комерційні продукти.
 
Продуктивність PHP може бути збільшена до 500% за допомогою кешування. Так чому ж не будують кешування в PHP? Тому що  PHP виробник продає свій власний прискорювач Zend і, звичайно, вони не хочуть, щоб пожирали їх власні комерційні продукти.
 
Але є альтернатива: APC .
 
Але є альтернатива: APC .
#Немає імен
+
===Немає імен===
 
Припустимо, хтось створює PHP-модуль, який може читати файли. Одна з функцій цього модуля називається читання. І чужий модуль може читати веб-сторінки, а також містить функції читання. Тоді неможливо використовувати ці модулі разом, тому що PHP не буде знати, які функція читання ви хочете.
 
Припустимо, хтось створює PHP-модуль, який може читати файли. Одна з функцій цього модуля називається читання. І чужий модуль може читати веб-сторінки, а також містить функції читання. Тоді неможливо використовувати ці модулі разом, тому що PHP не буде знати, які функція читання ви хочете.
 
Просте рішення для цього простору імен. Було запропоновано функція для PHP 5, але на жаль він не робив це . Тепер функції повинні бути з префіксом імені модуля, щоб уникнути конфлікту імен. Це призводить до страшних довгих імена наприклад xsl_xsltprocessor_transform_to_xml що робить код важчим для писання і читання.
 
Просте рішення для цього простору імен. Було запропоновано функція для PHP 5, але на жаль він не робив це . Тепер функції повинні бути з префіксом імені модуля, щоб уникнути конфлікту імен. Це призводить до страшних довгих імена наприклад xsl_xsltprocessor_transform_to_xml що робить код важчим для писання і читання.
#Нестандартні символи формату дати
+
===Нестандартні символи формату дати===
 
Багато програмістів знайомі з датами формату символів відомо з UNIX та мови програмування Сі. Інші мови програмування прийняли цей стандарт, але як не дивно, PHP має свій власний, абсолютно несумісний символ формату дати. Хоча в C, "%j " виступає за день в році, в PHP це означає день місяця. Ще більш заплутана: функція STRFTIME і date_format з Smarty, двигун PHP шаблонів, використовую C / UNIX символи формату.
 
Багато програмістів знайомі з датами формату символів відомо з UNIX та мови програмування Сі. Інші мови програмування прийняли цей стандарт, але як не дивно, PHP має свій власний, абсолютно несумісний символ формату дати. Хоча в C, "%j " виступає за день в році, в PHP це означає день місяця. Ще більш заплутана: функція STRFTIME і date_format з Smarty, двигун PHP шаблонів, використовую C / UNIX символи формату.
#Немає Unicode
+
===Немає Unicode===
 
З Unicode можна використовувати будь-яку мову в світі, наприклад, китайська, арабська та іврит. Незважаючи на всі інші серйозні мови програмування які підтримують Unicode протягом багатьох років, PHP все ще дуже важко з цим. Unicode запланований на PHP 6 , і нам все одно доведеться довго чекати , перш ніж PHP почне підтримувати цю тривіальну функцію.
 
З Unicode можна використовувати будь-яку мову в світі, наприклад, китайська, арабська та іврит. Незважаючи на всі інші серйозні мови програмування які підтримують Unicode протягом багатьох років, PHP все ще дуже важко з цим. Unicode запланований на PHP 6 , і нам все одно доведеться довго чекати , перш ніж PHP почне підтримувати цю тривіальну функцію.
#Повільно
+
===Повільно===
Ви думаєте, Java повільно? PHP набагато повільніше ! Так як же PHP використовують на всіх цих популярних веб-сайтів з великою кількістю відвідувачів? Через кешування. Ці сайти використовують Memcached і APC , щоб отримати продуктивність.
+
Ви думаєте, Java - це повільно? PHP набагато повільніше ! Так як же PHP використовують на всіх цих популярних веб-сайтів з великою кількістю відвідувачів? Через кешування. Ці сайти використовують Memcached і APC , щоб отримати продуктивність.

Поточна версія на 02:08, 20 червня 2014

Зміст

[ред.] Погана рекурсія

Рекурсія є механізмом, в якому функція викликає сама себе. Прикладом функції, використовуючи рекурсії швидкого сортування . На жаль в PHP не дуже добре реалізована рекурсія. Зєєв, один з розробників PHP, говорить наступне: ". PHP 4.0 використовує стек для інтенсивного потоку даних, а не за допомогою накопичування. Це означає, що його толерантність рекурсивних функцій значно нижче, ніж в інших мовах."

[ред.] Багато PHP-модулів не є потокобезпечними

Пару років тому, Apache випустив версію 2.0 свого веб-сервера. Ця версія підтримує багато-режимів, в якому одну частину програмного забезпечення, можна запустити кілька разів одночасно. Творці PHP сказати, що ядро PHP є поточне, тільки непрофільні модулі найчастіше такими не є. Але дев'ять з десяти раз використовується такий модуль у вашому PHP-скрипті, роблячи ваш сценарій не підходящим для багатопотокового режиму Apache. Погана підтримка багатопотокового режиму PHP часто розглядається як причина Apache 2 все ще не прищепилася.

[ред.] PHP є "калікою" з комерційних причин

Продуктивність PHP може бути збільшена до 500% за допомогою кешування. Так чому ж не будують кешування в PHP? Тому що PHP виробник продає свій власний прискорювач Zend і, звичайно, вони не хочуть, щоб пожирали їх власні комерційні продукти. Але є альтернатива: APC .

[ред.] Немає імен

Припустимо, хтось створює PHP-модуль, який може читати файли. Одна з функцій цього модуля називається читання. І чужий модуль може читати веб-сторінки, а також містить функції читання. Тоді неможливо використовувати ці модулі разом, тому що PHP не буде знати, які функція читання ви хочете. Просте рішення для цього простору імен. Було запропоновано функція для PHP 5, але на жаль він не робив це . Тепер функції повинні бути з префіксом імені модуля, щоб уникнути конфлікту імен. Це призводить до страшних довгих імена наприклад xsl_xsltprocessor_transform_to_xml що робить код важчим для писання і читання.

[ред.] Нестандартні символи формату дати

Багато програмістів знайомі з датами формату символів відомо з UNIX та мови програмування Сі. Інші мови програмування прийняли цей стандарт, але як не дивно, PHP має свій власний, абсолютно несумісний символ формату дати. Хоча в C, "%j " виступає за день в році, в PHP це означає день місяця. Ще більш заплутана: функція STRFTIME і date_format з Smarty, двигун PHP шаблонів, використовую C / UNIX символи формату.

[ред.] Немає Unicode

З Unicode можна використовувати будь-яку мову в світі, наприклад, китайська, арабська та іврит. Незважаючи на всі інші серйозні мови програмування які підтримують Unicode протягом багатьох років, PHP все ще дуже важко з цим. Unicode запланований на PHP 6 , і нам все одно доведеться довго чекати , перш ніж PHP почне підтримувати цю тривіальну функцію.

[ред.] Повільно

Ви думаєте, Java - це повільно? PHP набагато повільніше ! Так як же PHP використовують на всіх цих популярних веб-сайтів з великою кількістю відвідувачів? Через кешування. Ці сайти використовують Memcached і APC , щоб отримати продуктивність.

Особисті інструменти
Простори назв

Варіанти
Дії
Навігація
Інструменти