Добавление функций в ядро PHP


У меня есть несколько функций, которые я написал и регулярно использую на своих серверах, есть ли способ добавить их в ядро, чтобы мне не приходилось включать их из внешних файлов?

Я запускаю PHP5

Author: Till, 2008-12-22

5 answers

Вы можете добавить свои библиотеки в качестве расширения PEAR. Затем вы можете добавить его в свой локальный репозиторий PEAR. Pear добавляется в путь включения по умолчанию в php.ini. Затем вы можете просто использовать "pear install myextension" на своих компьютерах.

Если это функции C, с которыми вы взаимодействуете в php (расширения php), то вы можете сделать что-то подобное с PECL.

 6
Author: grepsedawk, 2008-12-22 04:11:19

Я делал это раньше.. это довольно сложный процесс, но не так уж и плохо. Эта статья на zend.com должен рассказать вам все, что вам нужно знать:

Http://devzone.zend.com/303/extension-writing-part-i-introduction-to-php-and-zend/

Редактировать: Я должен добавить, что есть лучшие способы достичь сути того, что вы пытаетесь сделать. Помните, что это еще больше загромождает пространство имен PHP (и без того очень загроможденное). Тебе, наверное, лучше просто сделать глобальный файл включения, содержащий все наиболее часто используемые функции, которые вы включаете везде, где вам это нужно.

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

 2
Author: dancavallaro, 2013-12-08 00:28:19

Если вы хотите, чтобы ваша функция всегда была доступна, не включая ее, сделайте следующее:

Создайте свою функцию в файле php.

В вашем php.ini найдите опцию "auto_prepend_file" и добавьте свой php-файл в эту строку, например: auto_prepend_file = "/path/to/my_superglobal_function.php "

Или если вы пишете без такого пути: auto_prepend_file="my_superglobal_function.php "Он будет искать в вашем include_path в php.ini, чтобы найти файл.

 2
Author: Abhishek, 2015-06-15 08:26:04

Почему именно так сложно включить файлы туда, где они вам нужны?

Я полагаю, что директива auto_prepend_file PHP.ini может работать. Но на самом деле это не рекомендуется.

 0
Author: jmucchiello, 2008-12-22 04:46:10

Если у вас есть автоматическая загрузка , вы можете перемещать функции как статические методы класса, такого как My_Functions.

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

Вы не можете автоматически загружать функции пространства имен, поэтому, если вы хотите использовать автоматическую загрузку, функции должны быть статическими методами в классе. Но вы можете использовать пространство имен, чтобы упростить fx замените класс в будущем и/или сократите длинное имя класса. Пример:

use My\Functions\Math as Math;
Math::calcThis($i);
 0
Author: OIS, 2008-12-22 08:08:12