[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Флудильня.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
twin
OleKh
Цитата
Это ещё не CMS
Это вообще не CMS biggrin.gif Это просто скрипт, выполненный по стартовому ТЗ.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
OleKh
Цитата (twin @ 14.02.2015 - 12:40)
А вот где тут ООП?


Я не сильно крут в этих штучках, но исходя из тех знаний и опыта что имею, ООП в моем понимании это объектно ориентированное программирование, т.е. ОБЪЕКТНО значит что объкт, а все объекты получаются через КЛАССЫ, следоавтельно если создан класс - будет и объект.

Может была договоренности паттерны не использовать, тут другое дело, но тас визуально вычислить где паттерн используется очень непросто.
twin
OleKh
Цитата
следоавтельно если создан класс - будет и объект
Пока объект не создан, класс, это просто набор функций. А для ООП обязателен объект, который создается инструкцией new. Объект, это набор данных. Идеология ООП строится на взаимодействии объектов, этих наборов. Пока я объект не создал, это императив. К тому же классы там статические, из них невозможно делать объекты. А нет объекта - нет проблем. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
OleKh
Смотрю в мануале статические классы

http://php.net/manual-lookup.php?pattern=s...&scope=quickref

и нет информации,

а свойства и методы есть.

http://php.net/manual/ru/language.oop5.static.php

Надо бы определиться с терминологией, что и как называть.
twin
Да полно информации. Экземпляр класса, это объект, еслив чё.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
OleKh
Цитата (twin @ 14.02.2015 - 13:45)
Экземпляр класса, это объект


Мануал
Цитата
Объявление свойств и методов класса статическими позволяет обращаться к ним без создания экземпляра класса.


Т.е. например

$object = new Router;
$object // экземпляр класса т.е. объект

Router::run();
Router // как его обозвать?
chee
Цитата (OleKh @ 14.02.2015 - 16:16)
Router

класс

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
OleKh
Цитата (chee @ 14.02.2015 - 14:40)
класс


А что значит класс с точки зрения обращения к памяти?

Т.е. когда говорится экземпляр класса, имеется ввиду ссылка на объект, объект - это типа переменной, который находится и доступен в глобальной области видимости.
waldicom


_____________
Свои мозги еще никто не отменял.
Телепатов нету.
twin
waldicom
Сеньк, поправим. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Zzepish
OleKh
Объект!=класс. Вообще хз, как ты тут можешь что-то утверждать, если в чем-то не разбираешься
stump
В этом диалектическом споре, который есть вечным, наверняка я буду ближе к ООП. Назвать использование статических классов и методов имперетивом, т.е. тем что не использует объекты это такой себе лайф-хак что формально [u]можно сказать[/u] да, но фактически это попытка обмануть самого себя в том что тут я не использую ООП, а использую Имперетив.

Кроме того: как назвать использование приемов ООП в частности приема ООП наследования?

_____________
Трус не играет в хокей
twin
stump
Цитата
В этом диалектическом споре, который есть вечным, наверняка я буду ближе к ООП.

Вольному воля. У меня нет цели (Боже упаси) кого то переубедить. Мне больше всего самому хочется понять, что как и зачем. Больше того скажу - ООП на сегодняшний день на порядок коньюнктурнее императива. И естественно нужно знать его принципы.
Цитата
Назвать использование статических классов и методов имперетивом, т.е. тем что не использует объекты это такой себе лайф-хак что формально можно сказать да, но фактически это попытка обмануть самого себя в том что тут я не использую ООП, а использую Имперетив.

Обсуждали уже. ООП, это не абстракция. Есть конкретные и определенные правила:
Цитата
1. Всё является объектом.

2. Вычисления осуществляются путём взаимодействия (обмена данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некоторое действие
.
3. Объекты взаимодействуют, посылая и получая сообщения. Сообщение — это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия.

4.Каждый объект имеет независимую память, которая состоит из других объектов.

5. Каждый объект является представителем класса, который выражает общие свойства объектов (таких, как целые числа или списки).

6. В классе задаётся поведение (функциональность) объекта. Тем самым все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия.

7. Классы организованы в единую древовидную структуру с общим корнем, называемую иерархией наследования. Память и поведение, связанное с экземплярами определённого класса, автоматически доступны любому классу, расположенному ниже в иерархическом дереве.

Если не соблюдаются эти принципы, это не ООП.

С другой стороны, императив описывает процесс вычисления в виде инструкций, изменяющих состояние данных. Императивная программа очень похожа на приказы, выражаемые повелительным наклонением в естественных языках, то есть это последовательность команд, которые должен выполнить компьютер.

Совершенно не важно, какими инструментами я пользуюсь. Вы ошибочно считаете, что классы, это прерогатива ООП. Ровно как и наследование. Причем наследование последнее время не считается хорошим тоном ООП, вместо него сейчас модно использовать делегирование.

И вообще, давайте не будем сейчас рассуждать, что лучше и что хуже. Пока сравнить не с чем. Дождемся оппонентов и тогда.

По коду замечания приветствуются. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
volter9
Цитата (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
}


Просто к слову что и без классов можно создать "контейнеры"

_____________
Мой блог
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.