OleKh
Цитата |
Это ещё не CMS |
Цитата (twin @ 14.02.2015 - 12:40) |
А вот где тут ООП? |
Цитата |
следоавтельно если создан класс - будет и объект |
Цитата (twin @ 14.02.2015 - 13:45) |
Экземпляр класса, это объект |
Цитата |
Объявление свойств и методов класса статическими позволяет обращаться к ним без создания экземпляра класса. |
$object = new Router;
$object // экземпляр класса т.е. объект
Router::run();
Router // как его обозвать?
Цитата (OleKh @ 14.02.2015 - 16:16) |
Router |
Цитата (chee @ 14.02.2015 - 14:40) |
класс |
Цитата |
В этом диалектическом споре, который есть вечным, наверняка я буду ближе к ООП. |
Цитата |
Назвать использование статических классов и методов имперетивом, т.е. тем что не использует объекты это такой себе лайф-хак что формально можно сказать да, но фактически это попытка обмануть самого себя в том что тут я не использую ООП, а использую Имперетив. |
Цитата |
1. Всё является объектом. 2. Вычисления осуществляются путём взаимодействия (обмена данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некоторое действие . 3. Объекты взаимодействуют, посылая и получая сообщения. Сообщение — это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия. 4.Каждый объект имеет независимую память, которая состоит из других объектов. 5. Каждый объект является представителем класса, который выражает общие свойства объектов (таких, как целые числа или списки). 6. В классе задаётся поведение (функциональность) объекта. Тем самым все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия. 7. Классы организованы в единую древовидную структуру с общим корнем, называемую иерархией наследования. Память и поведение, связанное с экземплярами определённого класса, автоматически доступны любому классу, расположенному ниже в иерархическом дереве. |
Цитата (twin @ 14.02.2015 - 19:27) |
Использовать классы, как контейнера для функций |
/**
* Storage container with getter and setter abilities
*
* @param array $default
* @param bool $readonly
* @return callable
*/
function repo ($default = [], $readonly = false) {
$repo = $default;
/**
* Repository callback itself
*
* @param string $key
* @param mixed $value
* @return mixed
*/
return function ($key = null, $value = null) use ($readonly, &$repo) {
// Setters
if (!$readonly && $key !== null && $value !== null) {
if (is_array($value))
$repo[$key] = array_merge($repo[$key], $value);
}
else {
$repo[$key] = $value;
}
return;
}
else if (is_array($key)) {
$repo = array_merge($repo, $key);
return;
}
// Getters
if ( isset($repo[$key]) ) {
return $repo[$key];
}
else {
return false;
}
return $repo;
};
}
function admin ($key = null, $value = null) {
static $repo;
$repo or $repo = repo();
return $repo($key, $value);
}
function admin_perform () {
// Perform an action
}
function admin_register (array $user) {
// Register a user
}