Svyatoi
Новичок
Допиливаю свою CMS, вижу что много где отстал от жизни. Сейчас переделываю ядро и основные классы, а для остального планирую использовать фреймворки.
Читаю про интерфейсы, абстрактные классы и не могу придумать как использовать их в работе.
Есть классы которые часто используются в других классах, например, класс базы данных, емейл, шаблонизатор и т.д.
Я работаю с ними так:
Интересуют также возможности расширения классов. Допустим, у меня есть класс Login, который отвечает за авторизацию, а также есть LoginExtra, позволяющий авторизоваться через социальные сеть. Правильно, по идее, в LoginExtra подгружать экстендсом класс Login но мне лучше наоборот в Login по мере недобности подгрузить методы LoginExtra.
Интересует опыт практикующих программистов в части удобной организации работы с классами и что бы вы могли посоветовать мне.
Читаю про интерфейсы, абстрактные классы и не могу придумать как использовать их в работе.
Есть классы которые часто используются в других классах, например, класс базы данных, емейл, шаблонизатор и т.д.
Я работаю с ними так:
Код:
// Если класс постоянно нужен, то подгружаю в конструкторе
function __construct()
{
global $db;
$this->db=@$db;
}
.....
// Если класс используется редко, то создаю его внутри метода, при этом класс Tree тоже работает с базой
function greateTree()
{
include(DIR.'class/extra/Tree.php');
$Tree = new Tree();
}
// Класс Tree вызывается всегда и только в одном месте, но некоторые классы могут дублироваться, например, Email.
function sendMsg()
{
...
include_once(DIR.'class/extra/Email.php');
$Email = new Email();
}
Интересует опыт практикующих программистов в части удобной организации работы с классами и что бы вы могли посоветовать мне.