![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Например, есть класс с несколькими методами и есть в нем один метод который вызывается постоянно перед тем как вызвать необходимый для какой та проверки, например проверить есть ли соединения с БД, если есть то продолжить вызов метода если нет то прервать )
Например:
Возможно ли такое ?, если нет то придется по старинке проверять в каждом методе необходимые параметры )) |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
а так нельзя? |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
или так Это сообщение отредактировал(а) ksnk - 27.9.2012, 15:49 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
__construct()
Добавлено через 45 секунд а для прерывания конечно же throw Exception -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Работает только если перед методом стоит знак ( _ ) почему так ? переписывать все методы как-то не особо хочется )) Не пойму а как он может определить, вызывается только один раз, как вариант писать какую-та переменную с статусом true/false и потом в каждом методе проверять ее ) |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
__construct() вызывается при new class();
__call Вызывается всегда когда к методу нетe доступа извне грубо говоря
Это сообщение отредактировал(а) Sanchezzz - 27.9.2012, 17:20 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
||||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
TS Если вы так хотите сделать по уму зашейте соединение БД отдельно в static свойство другого класса и вызывайте через функцию, которая будет получать конект если его нету или возвращать соединение.
Этот метод даст вам обращаться к функциям класса неявно что добавляет удобность на мой взгляд. a::getUser(1); Конечно придется там где используется Бд везде воткнуть bd::init(); в функцией я обычно решаю такой вопрос поиском и заменой Это сообщение отредактировал(а) Sanchezzz - 27.9.2012, 17:56 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
neoks |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Ну как я читал как я пробовал
__construct() вызывается когда создается новый класс __call вызывается когда в классе нет того метода который мне нужен, я пользуюсь им что ошибки не вылазили, но не вызывается когда метод есть в классе )) Задача как я писал нужно в каждом методе проверить есть соединения с бд или еше че )) то есть сейчас я везде в методах пишу типа
И так в каждом почти методе почти в каждом классе, хотелось бы упростить эту задачу всего одной функцией Как показал ksnk работает тока если во всех методах дописать знак (_) то есть _a() _b() _show() логику я понял ) Но как быть если я сделаю так ?
То тут __call() уже не сработает так как вызвал правильно и не будет не какой проверки ) |
||||
|
|||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
||||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Вот именно это мне и нужно, нужно проверить как-то один раз, а как я хз, у меня класс это модуль загружаемый с адресной строки, я могу вбить там любой модуль и любой метод ) и все это мне нужно проверять чтоб умники там не хулиганили ![]() |
|||
|
||||
ksnk |
|
||||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Это нужно было, чтобы сработал сам метод call, иначе выполнится собственный метод. Можно его сделать private, но это тоже означает переписывание кода.
Ну тогда нужно вставить проверку и запуск прямо в этот самый вызов
Это сообщение отредактировал(а) ksnk - 27.9.2012, 18:48 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
||||||
|
|||||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
А решил по другому сделать, не знаю почему сразу не подумал, у меня при автозагрузки класса вызывается метод init(), добавил еше init_member() равносильно __construct(), ну проверять все же приходится но теперь вместо с десяток строк мона написать одну )
Но все же хотелось бы ка кто вообще без проверки в методах сделать чтоб какой та отдельный метод все проверял ) |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
переименовать и все. можно сделать это динамически через какой-то classkit. но нестабильно-экспериментально-нафига? архитектурно это можно решить, работая с исключениями. на верхнем уровне — перехват. на нижнем — подавление/дополнительная работа только в случае необходимости. вот, дискуссия была: Какой смысл в исключениях (Exeption)? |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Ну и что? Написали же. В конструкторе. Именно этим, кстати, неудобны статические методы. Ты постоянно в каждом методе должен думать о том, готово и валидно ли окружение у тебя (есть ли коннект, хватает ли места на диске и т.д.). В обычном случае, для вызова любого метода любого объекта вам потребуется сначала инстанцировать сам объект. И у вас обязательно будет вызван конструктор, где можно подготовить рабочее окружение и выполнить необходимые проверки. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Просто у меня так получилось что __construct(),не работает )) пришлось немного помудрить чтоб сделать типа свой __construct(), но конструктор это все же запускается всего один раз ) он не как бы не подходит, так все равно мне нуно в какую-та var писать мов доступ запрещен и потом в каждом методе все равно проверять эту var разрешено или нет
Но темнемение __construct() удобен тем что в нем мона все проверить и потом назначить какой-та var true или false нежели в каждом методе проверять все параметры, а так нуно будет проверить одну var )) Но мне интересовало возможно ли вообще обойтись без проверки в методах ? чтоб за них делал какой-та специальный метод ? как я показал в примере, видимо это нереально, ну тогда буду значить и дальше проверять везде )) |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Зачем? У вас на каждое посещение адреса будет инстанцирование объекта, а значит вызовется конструктор. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
neoks |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Ну а что толку мне от него ? вызываю модуль с адресной строки http://site.ru/МОДУЛЬ ТО ЕСТЬ CLASS/МЕТОД ТО ЕСТЬ ЛЮБОЙ/ПАРАМЕТРЫ а значит вот что ))
В результате если я не буду использовать $this->stop то по этому адресу http://site.ru/test/a вернет мне результат full access что значит не какой проверки не было и кто угодно может что угодно сделать без ведома админа )) Меня интересует именно метод без проверки на if($this->stop) return; ![]() Это сообщение отредактировал(а) neoks - 28.9.2012, 18:40 |
||||
|
|||||
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
![]() феерично Вот в который раз убеждаюсь, что люди ищут не ответ на вопрос, а черти что. Ознакомьтесь
В качестве checkUserRights может стоять проверка в ACL - имеет ли доступ пользователь данной сессии к данному урлу. Но ваши проблемы проверки прав доступа к данному вопросу вообще не относятся. Поскольку более правильным будет другой подход. Т.е. у вас имеется приложение следующего вида:
Вопрос имеет ли право данный пользователь получить доступ к данному URL решается на этапе роутинга при помощи ACL Модулям должно быть вообще безразлично кто и какие права имеет. Соответственно, если проверка прав доступа провалена, то никакой модуль и метод не вызывается. Это сообщение отредактировал(а) Fortop - 28.9.2012, 19:44 -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
neoks |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Как говорится лучше один раз увидеть чем сто раз ему объяснять что иди вон туда и гугли че тебе там нуно и не парь нам тут мозги )) Разуется для меня эти исключения что то новое и пока вообше непонятно что это такое ? пока погуглил немного прочитал и мой мозг пока это все еше не пережувал. Попробовал и мне выбело вот такую ошибку Fatal error: Uncaught exception 'Exception' with message 'Что-то пошло не так' Это что то не так написано или так и должно быть ? ![]() Вижу Exception' with message значит наверно так и должно быть, а как теперь избавится от этого сообщения ? ) Добавлено через 3 минуты и 30 секунд
Движок полностью модульный и роутер не имеет не каких php функций, все делают модули, + не на всех модулях нужно проверять а также помимо доступа нуно проверить и другие параметры если понадобится ) например работает ли БД и тд |
||||
|
|||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Подключение к БД - в конструктор. А роутер переписать будет достаточно легко. И это будет намного проще чем пытаться внедрить все эти проверки в каждый ваш модуль. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
neoks |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Набросал пример для теста какой та из того что понял что эта такое ))
Все также, вернуло Error (File: C:\Winginx\home\roki.com\public_html\index.php, line 54): Could not open the file !test result oblom )) Где test result oblom )) это результат метода someMethod
В этом и дело, из 10 модулей понадобится 2м проверка БД, МОДУЛЯ БД !!, модулю БД может понадобится проверка права доступа, другому модулю может понадобится проверить то и то, другим вообше что та другое и так далее ) Я не знаю кому что может понадобится проверить и следовательно в роутер я не могу впихнуть куча проверок ) |
||||
|
|||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
![]()
-------------------- Мир это Я. Живее всех живых. |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Ладно, буду дальше проверять как и проверял, пока в этот try cath не врубаюсь зачем оно нуно так как любой пример у меня не пашет, смысл не понятен
![]() Вот грубый тест
Вернуло test module или я снова чет напутал ? )) |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Из конструктора нужно бросать исключение
-------------------- Мир это Я. Живее всех живых. |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Ну вот снова и таже история
Как там бросить ? че нуно сделать ? каким макаром ?, уже леплю тут из кусков хз что знает пытаюсь хоть чета добиться из этих огрызков кода и как обычно нуно вон туда чет вставить, опять ша буду шаманить, уже пробовал и не какого результата не добился. Мона один но нормальный пример показать ? ![]() |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
В мануал. И изучаем синтаксис, как бросать исключения. выше уже были примеры. У вас очень простая схема.
И вопрос собственно не в форумах и даже не в примерах, которых было достаточно. А в типах людей. Есть люди, способные сами решить вопрос и за ниточку распутать весь клубок, а есть люди, которые думать не хотят, но умеют копировать шаблоны. Вот вы к сожалению хотите идти по второму пути. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Ну вот в этом и все дело, я не могу там цеплять проверки всякие, только после того как загружается модуль и вот там уже отсекать, я не пишу CMS где заявляют что их CMS полностью модульная, если у них стоит некая проверка на URL это уже знак того что CMS уже не модульная а нуждается в собственных функций )) У меня все же напротив, у меня есть роутер и автозагрузка класса, вот и весь движок, всего 2 файла не превышающие 140 строчек кода, а все остальное это самостоятельные модули. Разумеется что по вашей схеме я не могу так сделать, конечно у меня есть инициализатор и да я могу спокойно все отсечь, а вы попробуйте объяснить пользователям которые юзают движок как ша вы мне объясняете что нуно использовать try cath, разумеется они все это пропустят и появится дыры из за чего заслужу репутацию дырявого движка. Разумеется зачем мне это нужно ? когда модуль сам может самостоятельно все отсечь без вмешательств со стороны, вопрос как его заставить чтоб в каждом методе не проверять И да, мануалы я читал и примеры тестил, логику я пока не понял, что эта такое и зачем оно нужно мне не понятно, взял пример с проверкой соединения с базой данных, не знаю чем оно лучше if(), if() хоть правильно проверил а try cath даже не пискнул ![]() Следовательно здесь я хоть спросил как это сделать на примере чтоб врубится для чего же оно, в мануалах я уже второй день читаю и не вкуриваю, куча примеров перебробывал и все они почти не работают, как по мне лучше все таки if() юзать чем это ![]() |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Кто сказал что не можете? А как вы вообще планируете реализовывать ACL? Добавлено через 1 минуту и 6 секунд
И ваша система заслуженно будет считаться дырявой. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Ну вот скажем роутер
Как мне тут реализовать ? ![]() Очень просто, через Инициализацию модулей которая настроена по стандарту, я настроил и забыл Модули успешно все отсекают если все проверять в каждом методе как я ша и делаю, просто мне интересовал метод чтоб не писать проверку в каждом методе чтоб все проверял только один метод ) |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Это и делает ACL на этапе роутинга или сразу после него. Вот после 26й строки и делайте проверку в ACL А дальше у вас все идет как обычно или доступ отказан. Реализовывать это в каждом модуле, который может и не знать имеет ли пользователь права для доступа к нему - нет смысла. Это вообще что? ![]() -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 41 Всего: 60 |
попытка получить путь к файлу когда можно использовать pathinfo или realpath интересно а расширение файла как проверяются substr до первой точки? -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
А дальше у меня идет /** Инициализация модулей **/ это тот же ACL тока расширенный, могу любой модуль запустить а он уже решит что ему там нуно проверить помимо авторизации или доступа, много чего он может проверить и решит дать мне доступ к другому модулю или нет например за доступ отвечает модуль auth, но вот и прикол, я могу удалить это модуль если он мне не нужен ![]() То есть избавится от лишней проверки и нагрузки на сервак, например замутить какойта парсер где и не нужна проверка ) Меня интересует не тока авторизация и доступ, например проверка бд, что тоже там ставить на проверку ? а если мне не нужна БД для моего скрипта, то есть об этом я все подумал ![]() Все дело в том что если в /** Инициализация модулей **/ не включен модуль там какой-та проверки скажем БД да и вообше зачем мне везде проверять ? вот в чем смысл, скажем скрипт работает отлично без БД все работает как надо но вдруг я решил установил какой-та модуль с маркета и решил его запустить проигнорировал все его настройки или не почитав что там нуно настроить. Так вот запускаю модуль а мне сразу вылазят ошибки что к БД нет доступа и тд, решение есть, сразу в методе сделать проверку работает бд или нет и если не пашет то завершить работу модуля и сообщить что так и так БД не пашет. Все отлично и так но один минус есть, то что проверку нуно писать в каждом модуле или сказать пользователю что нуно его включить в /** Инициализация модулей **/ чтоб он проверил работает бд или нет и самое худшие если я включю а бд не будет работать то сайт сразу накроится и будет везде светится что бд не настроена. Ну надеюсь что уже досконально объяснил в чем прикол, мне не нужна ошибка об нерабочий бд чтоб светилась по всему сайту а только когда я запрашиваю этот модуль. Добавлено через 2 минуты и 17 секунд А это чтоб стереть index.php с адресной строки чтоб не определяло как модуль index.php )) |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
neoks, Единственное здравое решение, которое мне приходит в голову ( это кроме "сжечь такие исходники и написать все заново"
![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
neoks |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
ksnk я понял о чем ты клониш и все это у меня реализовано только без таблиц чтоб не использовать БД даром
Вот как уменя стартуют модули до того как запустить необходимый модуль к которому обратился пользователь. ![]() Тут все я контролирую, какой метод при каком модули или какой исключить и где его запустить ) Мне тут настроить как два пальца об* но вот другие врятли так быстро вдуплят что и как, вот и хочется иметь страховочный вариант ![]() |
|||
|
||||
Fortop |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Я не понимаю этого прикола Либо он вам нужен чтобы умники не хулиганили, либо он вам не нужен. Но вы, уж, батюшка либо трусы оденьте, либо крестик снимите... Я вам собственно даже рассказывать уже что-либо опасаюсь. Поскольку намеков вы не понимаете, язык, которым вы изъясняетесь, заставляет у меня шевелиться волосы в самых неожиданных частях тела при одной мысли, что вы еще и код пишете... Но попробую... Во-первых, вы путаете локальные требования модулей и глобальные требования приложения. Права доступа определяются приложением, а не модулем. Поэтому проверка прав доступа выполняется "до" запуска сторонних модулей, но может быть возложена на обязательный "системный" модуль. Во-вторых, необходимость подключения к БД или его отсутствия, если самому приложению не требуется, то идет на уровень конкретного модуля. Поэтому эта проверка выполняется на этапе конструирования объекта в __construct() В-третьих, для того чтобы не писать слишком много дублирующегося кода во втором случае, есть такая штука как наследование.
У нас есть некий абстрактный модуль AbstractModule. Далее этот модуль может либо требовать наличие БД ModuleWithDB, либо не требовать ModuleWithoutDb Все модули которым нужна БД у нас должны расширять класс ModuleWithDB (как MySampleModuleWithDB) Если модулю не требуется наличие БД, то он будет расширять класс ModuleWithoutDb Иерархия наследования намеренно усложнена, чтобы структура была более логически завершенной. В обычных условиях можно обойтись меньшим числом классов, поскольку отсутствие чего-либо декларировать не нужно, то базовый класс AbstractModule будет только расширяться дополнительными требованиями, а если они нам не нужны, то мы будем наследоваться от базового класса. -------------------- Мир это Я. Живее всех живых. |
||||||
|
|||||||
neoks |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 425 Регистрация: 5.7.2010 Репутация: нет Всего: 1 |
Нету у меня системных модулей вообще которых нельзя удалить, вот он в чем прикол, могу подчистую все модули удалить и не каких проблем не будет и движок дальше будет работать ) Ух переписывать все это как то не вариант ![]() Плюс скажем я хочу вызвать модуль в шаблоне, например тот же код что и в try
Вылетит птичка Fatal error: Uncaught exception 'Exception' with message 'No connect' что есть не гуд так как это считается уязвимость, пихать в try cath ради одного модуля не вариант, + еше не понял как с него сделать автозагрузку модулей чтоб не писать постоянно new MySampleModuleWithDB() как я себе сделал )) Для примера вот мой автозагрузчик
Конечно стоило как то пошаманить с статическим классом но на тот момент я пока не разбирался )) |
||||
|
|||||
Fortop |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
PHP это динамический язык поэтому допускаются конструкты вида
где $moduleName содержит имя класса.
После такого перла я, пожалуй, пас. А вам читать... долго и упорно. Шлосснейгл "Профессиональное программирование на PHP" http://habrahabr.ru/post/30399/ http://www.phpfaq.ru/debug2 http://www.phpfaq.ru/debug3 Добавлено через 5 минут и 9 секунд Ах, да. А самый цимес в том, что в моем случае не возникает никаких ваших проблем. -------------------- Мир это Я. Живее всех живых. |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |