Существует огромное количество встроенных функций PHP .Мне было интересно, что после почти двух с половиной лет работы инженером-программистом я почти не использую небольшую их часть.Но все они определены и могут использоваться с установками PHP по умолчанию.
Я где-то читал в SO, что PHP предоставляет все эти встроенные функции, но для того, чтобы делать подобные вещи с такими языками, как JAVA, требуется много кода.Это верно?Я не очень опытен в других языках.
Кроме того, правильно ли я предположить, что большая часть этих функций не используется ни одной из других встроенных функций или чем-либо (внутренними зависимостями)?Например, эти функции pdf_fit_table () , gzopen () необходимы только для файлов, связанных с файлами PDF и gzip соответственно.
Если это так, то, как опытные программисты,Предоставляет ли нам PHP какой-либо вариант их выборочной загрузки в зависимости от требований конкретного проекта или более динамически в зависимости от конкретного модуля?например, загружать функции, связанные с PDF, только если у меня есть задачи, связанные с PDF.Если возможно, на каком уровне это можно сделать?Если на уровне установки PHP, то я думаю, что это невозможно в случае виртуального хостинга.Возможно ли лучшее решение этой проблемы?
Я просто говорю с точки зрения здравого смысла, мы включаем файлы, содержащие функции по мере необходимости.
Это даст повышение производительности?
Я не очень осведомлен о библиотеках ядра и т. Д. PHP.Итак, пожалуйста, пролите немного света.
Обновления:
Спасибо за ответы
@ pygorex1 - HipHop способ оптимизировать PHPв общем и целом.Итак, если говорить очень просто, если я прав, если для запуска раньше потребовалась 1 секунда, то с использованием HipHop это может составить 0,7 секунды.Но в обоих случаях наличие этих дополнительных ненужных определенных функций добавляет свои издержки (скажем, 0,1 секунды в первом случае и 0,07 секунды в случае HipHop).Если так, то HipHop нацелен на что-то еще и не отвечает на мой вопрос.Тем не менее, два других пункта, которые вы дали, говорят, что все должно быть сделано во время компиляции.Таким образом, это, вероятно, означает, что если я скомпилирую с расширением, то группы функций под ним будут загружаться каждый раз.Тогда, вероятно, нет дальнейшего способа удаления включения?Что-то вроде вечности?
@ Тайлер - Я согласен, что может быть трудно сделать то, о чем я прошу, но причина не в том, что вы говорите.Не может быть так сложно выяснить зависимости.Просто применяя здравый смысл, я могу сказать, что такие функции, как is_numeric()
, is_array()
, array_walk()
, func_get_args()
и т. Д., Являются очень простыми и, вероятно, вызываются многими, но есть легко различимые группы, такие как группа функций сокета, содержащаянапример, socket_connect()
, которые не нужно включать, если они явно не нужны.Проблема, вероятно, заключается в том, что его нужно указывать при компиляции, как ответил pygorex1.