venomjke / anbase

CRM
Other
2 stars 0 forks source link

Подключение классов #24

Closed proxeter closed 12 years ago

proxeter commented 12 years ago

Еще идея (или замечание): /*

if(!class_exists("AnbaseRuntimeException")){ require_once APPPATH."exceptions/AnbaseRuntimeException.php"; }

Не легче ли будет создать класс, который будет по переданным ему параметрам проверять и подключать необходимые классы? Например: ClassExist->Check( "ValidationException", "AnbaseRuntimeException" );

Ведь если что-то придется поменять в путях классов, надо будет поправить лишь в одном месте, а не по всему коду

venomjke commented 12 years ago

В codeigniter для загрузки тех или иных системных файлов используется специальный модуль "Loader", который можно расширить. Я добавлю туда метод exception, и можно будет загружать исключения как models,libraries, и.т.д $this->load->exceptions(array('AnbaseRuntimeException','ValidationException')); Хранить их будем там же, где и сейчас в exceptions. Однако есть нюанс, который касается их использования после загрузки.

  1. Можно будет загрузить эти файлы как обычно CI это делает, и использовать их так $this->validation_exception->generate(...); А в generate будет throw new Validation_Exception();
  2. Либо, можно оставить нативный способ создания исключения, и тогда будет просто new ValidationException().