PHP OO против процедуры с AJAX - PullRequest
1 голос
/ 27 мая 2010

В настоящее время у меня есть мощное (почти все) интранет-веб-приложение AJAX для бизнеса. Он очень модульный (компоненты и модули, такие как Joomla), с большим количеством папок и файлов. ~ 80-100 различных просмотров страниц (каждая очень уникальна в своем собственном смысле) по последним подсчетам и, вероятно, увеличится в ближайшем будущем.

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

Тем не менее, обычно существует два типа файлов: файлы отображения с html, javascript и небольшим php для шаблонов. А также бэкэнд-файл php с одним оператором switch с такими действиями, как сохранение, обновление и удаление и, возможно, другие функции. Несколько страниц / экранов могут использовать один и тот же php-сервер.

Недавно я добавил серверную функцию отмены, которая требует от меня повторного использования некоторого кода. Итак, я воспользовался возможностью попробовать ООП, но заметил, что некоторые функции настолько просты, что создание класса, извлечение всех данных и обновление всех связанных строк в базе данных кажется излишним для простого действия, так как скорость очень важна , Также я заметил, что во всем файле только один класс.

Итак, что если весь php является классом? Итак, между созданием класса и методов и использованием глобальных переменных и функций. Что быстрее?

Ответы [ 2 ]

1 голос
/ 27 мая 2010

Написание объектно-ориентированного PHP никак не повлияет на вашу производительность. Если вы используете такие расширения, как Zend Optimizer, он может работать даже быстрее.

Таким образом, на самом деле нет причин не использовать гораздо более понятную и более легко поддерживаемую объектно-ориентированную парадигму в PHP.

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

1 голос
/ 27 мая 2010

Вопрос ошибочный. Проблема не в скорости, а в организации кода. Используя только глобальные функции и переменные, а также их множество, будет все сложнее избегать конфликтов имен и сохранять все организованным. Классы помогут вам упаковать и абстрактные вещи. Скорость выполнения является второстепенной задачей, и в большинстве случаев не будет заметно увеличиваться, если вообще будет. Однако со временем скорость разработки может значительно возрасти, поскольку вам придется меньше бороться с конфликтами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...