ref
Новичок
Прошу помочь советом и ткнуть носом. Встал в ступор на текущей стадии разработки.
Краткая логика работы CMS: При обращении к сайту, в bootstrap.php происходит include всех необходимых файлов - базовый класс модели, контроллера, smarty(в качестве вьювера), и библиотек(об этом ниже). Далее bootstrap.php запускает маршрутизатор, который разбирает url и соответственно уже создаёт экземпляр класса необходимого контроллера, который работает с моделью и видом. С этим проблем и вопросов не возникает.
Вопрос возник вот тут. Как я говорил, у меня есть библиотеки(lib), по сути это простые файлы с классом. Например класс работы с БД - /lib/db.class.php, либо класс работы с сессиями - /lib/session.class.php, есть класс авторизации и регистрации, работы с датой и т.д. К сожалению, я не знаю как эти классы должны правильно называться, поэтому называю их библиотеки и храню в /lib/.
Беда в том, что все классы используют статические методы, и я обращаюсь к ним напрямую как DB::db_select(), DB::db_update, Session::check(), Session::expired($login). Для работы с БД я понимаю, что могу использовать Singleton, но не считаю это выходом.
У меня в голове есть идея, что я должен создать какое-то глобальное хранилище классов, ещё во время выполнения bootstrap.php. И по мере обращения к какому-то классу из любой части приложения, происходит проверка на существование данного экземпляра класса, и при необходимости такой экземпляр создаётся.
И уже в приложении, я мог бы без проблем использовать конструкции типа App::Session->Check(), и в классе App, происходила бы проверка, существует ли экземпляр класса Session, если нет, то создавала бы.
Натолкните как правильно всё-же делать.
Краткая логика работы CMS: При обращении к сайту, в bootstrap.php происходит include всех необходимых файлов - базовый класс модели, контроллера, smarty(в качестве вьювера), и библиотек(об этом ниже). Далее bootstrap.php запускает маршрутизатор, который разбирает url и соответственно уже создаёт экземпляр класса необходимого контроллера, который работает с моделью и видом. С этим проблем и вопросов не возникает.
Вопрос возник вот тут. Как я говорил, у меня есть библиотеки(lib), по сути это простые файлы с классом. Например класс работы с БД - /lib/db.class.php, либо класс работы с сессиями - /lib/session.class.php, есть класс авторизации и регистрации, работы с датой и т.д. К сожалению, я не знаю как эти классы должны правильно называться, поэтому называю их библиотеки и храню в /lib/.
Беда в том, что все классы используют статические методы, и я обращаюсь к ним напрямую как DB::db_select(), DB::db_update, Session::check(), Session::expired($login). Для работы с БД я понимаю, что могу использовать Singleton, но не считаю это выходом.
У меня в голове есть идея, что я должен создать какое-то глобальное хранилище классов, ещё во время выполнения bootstrap.php. И по мере обращения к какому-то классу из любой части приложения, происходит проверка на существование данного экземпляра класса, и при необходимости такой экземпляр создаётся.
И уже в приложении, я мог бы без проблем использовать конструкции типа App::Session->Check(), и в классе App, происходила бы проверка, существует ли экземпляр класса Session, если нет, то создавала бы.
Натолкните как правильно всё-же делать.