Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Удаление функций и классов

47K
30 июля 2009 года
PeaceCoder
11 / / 30.07.2009
Уважаемые гуру.
Не подскажете возможно ли удалять(анрегистрить) функции и классы в PHP. Весь инет перерыл - ненашел. :(
12
31 июля 2009 года
alekciy
3.0K / / 13.12.2005
А тебе зачем?

Запретить использование какого либо класса в коде можно на уровне интерпретатора, читай php.ini ;)
47K
31 июля 2009 года
PeaceCoder
11 / / 30.07.2009
Цитата:
Запретить использование какого либо класса в коде можно на уровне интерпретатора, читай php.ini


Проблема в следующем. Надо просканить пхп файлы и найти названия классов и/или функций.
Легче это сделать при помощи самого пхп инкладом и поиском новых классов и названий функции через get_declared_classes & get defined_functions, но если функции и классы повторяются - фатал еррор.

Ну вижу что нельзя программно. Тогда другой вопрос. Может кто знает хитрое регулярное выражение которое выдиляло бы правильную php строку в "двойных кавычках"?

приведу сразу с ходу пример:
$str = "фывафыва\"sdfasdf{$this->assd}asd{$pdw->wd["wd\"{w}d"]}апd";

является корректно написанной строкой. но регулярным выражением не могу ее выделить.... о первой до последней кавычки.

П.С. Сканинг классов и функций нужен для ядра модульного движка сайта. Рядом кстати видел темку да и не один десяток сайтов перерыл. Такой задумки как я хочу сделать еще нигде нет.
П.П.С. И не говорите что __autoload используй и не ломай голову. при не нахождении класса - фатал еррор, что в моем варианте не годится. я же пишу свой код что бы при ненахождении определенного класса/функции просто выдавало false. тем самым если в модуле используются функции модулей которые не установлены - просто будет сообщение о том что модулю требуются определенные модули для корректной работы.

244
31 июля 2009 года
UAS
2.0K / / 19.07.2006
Цитата: PeaceCoder
но если функции и классы повторяются - фатал еррор.


Это решается использованием include_once и require_once. И, имхо, повторяться в одном проекте имена классов и функций не должны.

Цитата: PeaceCoder
является корректно написанной строкой. но регулярным выражением не могу ее выделить.... о первой до последней кавычки.


Вообще все целиком выделить?
$matches = array();
preg_match_all('#".*"#is',$str,$matches,PREG_SET_ORDER);

47K
31 июля 2009 года
PeaceCoder
11 / / 30.07.2009
Цитата: UAS
Это решается использованием include_once и require_once. И, имхо, повторяться в одном проекте имена классов и функций не должны.


Вообще все целиком выделить?
$matches = array();
preg_match_all('#".*"#is',$str,$matches,PREG_SET_ORDER);



1. Именно что проект не 1. В моем движке классы могут повторятся, НО в зависимости от условий выбираются определенные. Пример: Есть модуль форума. У него соответсвенно есть модули "отображения". И эти модули пишутся разными людьми. Ядру сайта начхать как называются классы в этих модулях. Но если юзер выбрал ядро отображения форума1 (само ядро форума 1но =)), то грузятся классы и функции 1го ядра отображения. Если 2ой - то вторые.

Тем самым например, можно написать 2 разных движка форума и к ним по несколько движков отображения. Естественно классы движков форумов и движков отображений не должны пересекаться.

2. Это я и сам могу написать =) Мне надо что бы он не все подряд брал а именно корректную строку.
пример 2.
1 "фывафыва\"sdfasdf{$this->assd}asd{$pdw->wd["wd\"{w}d"]}апd" 2 "sdfsdfasdfadfs" 3
если применить хитрый запрос он должен выдать первую строку и вторую не цепляя 1,2,3

47K
31 июля 2009 года
PeaceCoder
11 / / 30.07.2009
Лан. Можно закрыть тему. Поставлю условие, чтобы классы и функции не повторялись по названиям в проекте, да и сам инсталятор при сканинге не даст этого сделать выдав FATAL...
12
31 июля 2009 года
alekciy
3.0K / / 13.12.2005
Цитата: PeaceCoder

П.П.С. И не говорите что __autoload используй и не ломай голову. при не нахождении класса - фатал еррор


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

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог