[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: The Liw Framework
Страницы: 1, 2
Razzwan
Ссылка на git-репозиторий на GItHub
Это вот базовый шаблон

Оцените результаты:
1. Умею пользоваться github + git
2. Умею пользоваться composer + packagist.org
3. Подключен фрэймворк bootstrap для css
4. Понял базовые принципы MVC (мои модель вид и контроллер полностью им соответствуют)

Вопросы:
1. Все это мне стоило 8 месяцев времени. Это слишком долго? Стоили ли продолжать или я уже безнадежно отстал от времени?
2. Что дальше?

_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
Invis1ble
https://github.com/Razzwan/liw-project/blob...models/User.php - слизано с коханы?
я бы не назвал это каноничной моделью

ЗЫ. @var string �������� ������� � ��, � ������� �������� - отличный комментарий smile.gif

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Invis1ble
вообще, что делают методы управления сессией в модели?
class User extends Model
{
// ...
/**
* Запуск сессии
*/

private function session_start(){
Liw::$isGuest = false;
$_SESSION['user'] = $this->fields;
}
static public function session_stop(){
Liw::$isGuest = true;
unset($_SESSION['user']);
}


_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Invis1ble
https://github.com/Razzwan/liw-project/blob...mposer.json#L20 - подключать фронтэнд через менеджер пакетов для бэкэнда тоже не кошерно, имхо. Открой для себя bower, например.

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

twin
Цитата (Razzwan @ 22.08.2015 - 08:16)
2. Что дальше?

Как сказал Карретт в свое время, "теперь забудь все это и просто программируй". smile.gif


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

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

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

user posted image
Invis1ble
Цитата (Razzwan @ 22.08.2015 - 11:16)
Стоили ли продолжать или я уже безнадежно отстал от времени?

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

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Razzwan
Invis1ble
Цитата
https://github.com/Razzwan/liw-project/blob...models/User.php - слизано с коханы?

Не, все собственные велосипеды.
Цитата
вообще, что делают методы управления сессией в модели?

ХЗ, а где они должны быть?
Цитата
эти подходы устарели несколько лет назад.

Что именно устарело?
Цитата
Юзай DI.
Razzwan
twin
Цитата
Как сказал Карретт в свое время, "теперь забудь все это и просто программируй".  

) я серьезно. Если я жесткий тормоз, можно прямо так и сказать - не обижусь.

_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
Invis1ble
Цитата (Razzwan @ 22.08.2015 - 12:47)
Эх бы ссылочку.
twin
Да я тоже серьёзно. Пару лет назад о Dependency Injection и слышать не слышали, а теперь вона чё оказывается) А пока ты в них врубишься, пока свои проекты перелопатишь, придумают еще какую-нибудь ересь. biggrin.gif Так и будешь всю жизнь на побегушках у других, но при этом ощущая себя на пике моды и во главе новейших технологий.

Оно должно само придти, твое понимание программирования. И совсем не обязательно это будет DI или вообще MVC. Главное, чтобы было комфортно жить и работать. Вот примерно о том Карретт и говорил.

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

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

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

user posted image
Razzwan
Цитата
гугли dependency injection

Если я правильно понял, то я легко могу удовлетворить требования этого подхода лишь добавлением сетеров для всех входных данных. Или я недопонял?



_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
twin
Суть DI проста до безобразия. Это похоже к примеру на MP3-плеер. Если используется внутренняя память, то для того, чтобы послушать новую музыку, нужно её изменить (записать туда что-либо). Соответственно нужно выполнить некоторые команды, которые в плеере забиты жестко.

Если используется внешняя флешка, то пофиг, как она выглядит и что на ней записано. Не нужно трогать сам плеер, нужно только сменить флешку.

В коде (упрощенно) примерно так:
class Memory
{
public function run()
{
echo 'Тра-ля-ля';
}
}



class MP3pleer
{
public function play()
{// Конкретный класс памяти
$sounds = new Memory();
return $sounds->run();
}
}


$obj = new MP3pleer;
$obj->play();


Здесь можно использовать только и только класс Memory(). А если следовать концепции DI, то должно быть так:
class Memory
{
public function run()
{
echo 'Тра-ля-ля';
}
}



class MP3pleer
{
public function play($sounds)
{
return $sounds->run();
}
}


$obj = new MP3pleer;
$sounds = new Memory();
$obj->play($sounds);
И тогда можно использовать любой класс, главное чтобы он имел метод run().

На самом деле все немного сложнее, там нужно делать контейнер по хорошему, управлять всем хозяйством нужно конфигурацией, есть куча подводных камней и пр. Внедрять зависимости можно разными способами, как через конструктр или методы, сеттеры-геттеры или свойства напрямую. Но суть примерно такая.

Эта концепция хороша для фреймворков, которые пишутся для полной унификации (что на мой взгляд полная утопия). А по сути усложняет конструкцию как в плане прозрачности и управляемости кода, так и в плане его поддержки. Но это ИМХО, сразу предупреждаю. Не нужно никому напрягаться и что-либ пытаться доказать. :)

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

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

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

user posted image
Быстрый ответ:

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