конвертировать php класс в нативный класс - PullRequest
1 голос
/ 06 апреля 2011

Есть ли способ встроить группу php-классов в php, чтобы я мог вызывать их без необходимости включать классы как файлы? Мне нужно, чтобы это использовалось локально или на частном сервере.

Заранее спасибо:)

Ответы [ 5 ]

6 голосов
/ 06 апреля 2011

Вы можете использовать __ autoload () , если я вас правильно понимаю.

Примечание от @ KingCrunch :

Функция __autoload () не должна использовать больше, потому что если вы используете другие библиотеки, которые определяют spl-loader, функция никогда не вызывается с тех пор

Так что было бы лучше, если бы вы использовали Функции автозагрузки SPL .

1 голос
/ 06 апреля 2011

Для лени вы можете использовать настройку php.ini:

 auto_prepend_file = /usr/share/php/allmypredefinedclasses.php

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

(я лично использую его для того, чтобы нарушить некоторые функции PHP6 ...)

0 голосов
/ 06 апреля 2011

Если вы используете шаблон MVC, где, например, страница index.php вызывается при каждом запросе, тогда __autoload будет хорошим решением.В противном случае вы можете использовать 'auto_prepend_file', как предлагалось ранее.

Надеюсь, это поможет.

0 голосов
/ 06 апреля 2011

Скопируйте содержимое каждого файла без <?php и ?> в файл classes.inc.php и просто включите этот файл.

[править] Я не думаю, что вам нужно так много производительности,потому что PHP уже быстрый.Но если вы действительно включаете каждый файл классов, который вам нужен, в каждый файл, которому иногда просто нужен один из классов, то это плохая идея.

Почему бы вам не разбить ваши классы на модули:

Например: DatabaseModule database.module.php содержит классы connection, queries, results

Затем поместите все ваши классы в группы и переместите их в каталог modules/

Чем вы можете использовать пользовательскую функцию, вот простой пример:

<?php
function loadModule($name) {
    $file_path = './modules/' . $name . '.module.php';
    require_once $file_path;
}
?>

Теперь вы можете просто добавить все нужные вам модули в каждый файл с помощью функции loadModule.

Я надеюсь, что это помогло вам.

0 голосов
/ 06 апреля 2011

просто добавьте путь к php.ini, и они всегда будут доступны на этом сервере

...