Хотел сделать MVC, но вот что получилось...

123
Р
На сайте с 17.05.2011
Offline
136
#11
danforth:
Рамарио, горло это называется API.

О! Точно. Что-то не сообразил :)

danforth:
Можно конечно JSON лить в одну точку, например domain.ru/api/v1/, но архитектура шаткая получается.

А в чем шаткость?

Я объясню почему я все свалил в одну кучу: очень удобно делать такие вещи как проверка авторизации, например. В начале скрипта выполняются действия, которые не требуют авторизации, потом проверяется авторизация, загружаются данные пользователя и далее все остальные функции, которые без авторизации выполняться не должны.

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

M
На сайте с 04.12.2013
Offline
223
#12

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

---------- Добавлено 01.02.2017 в 22:02 ----------

Централизация достигается за счет использования, грубо говоря, одного файла фронта, который распределяет обращения по файлам ф-ций.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
D
На сайте с 31.01.2017
Offline
15
#13

Рамарио, я бы посоветовал хотя бы поверхностно почитать про фреймворки symfony, yii и т.д. Думаю много интересного для себя обнаружите. Тоже писал свой велосипед и написал даже. Но во фреймворках много готовых запчастей (паттернов и других интересных решений).

Р
На сайте с 17.05.2011
Offline
136
#14
demiux:
Рамарио, я бы посоветовал хотя бы поверхностно почитать про фреймворки symfony, yii и т.д. Думаю много интересного для себя обнаружите. Тоже писал свой велосипед и написал даже. Но во фреймворках много готовых запчастей (паттернов и других интересных решений).

Посмотрел. Yii мне показался интересным и довольно легким в освоении. Однако, "легким в освоении" - это все относительно. Учитывая, что когда все пишешь сам - хорошо представляешь как это все работает. Да и функционал PHP довольно хорошо известен, задокументирован и инфы по тому как сделать то или то - выше крыши.

А тут все по-другому - там свои классы, привычные вещи делаются по-другому (хотя не скрою - на порядки проще!).

В общем, созрел у меня вопрос: понятное дело, что изучив и получив какой-то опыт с Yii (впрочем, я думаю, с любым подобным фреймворком) писать можно будет намного быстрее и, скорее всего, намного меньше багов будет (плюс их будет проще искать). Но я, по-видимому, потрачу на это дело несколько недель как минимум. Оно того я полагаю стоит? :)

D
На сайте с 31.01.2017
Offline
15
#15

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

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

Рекомендую еще почитать про паттерны проектирования. Все равно будете их изобретать заново, а зная, уже начнете ими оперировать.

danforth
На сайте с 18.12.2015
Offline
153
#16

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

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

Из хороших фреймворков:

Symfony

Zend

Laravel (частично построен на пакетах Symfony)

Изучать фреймоврки именно в том порядке, в котором я их перечислил, начинать писать на них лучше с конца, потому что на Laravel самая быстрая скорость разработки.

Ещё советую писать сразу под PHP с strict_types=1; и с полным type hinting и return type declaration, вот так:


public static function getSum(float $a, float $b) : float
{
return $a + $b;
}

А ещё сразу приучите себя к PSR.

Junior Web Developer
D
На сайте с 31.01.2017
Offline
15
#17

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

Не поленился, сделал выборку вакансий на hh по Москве:

Всего, з/п.100-110т.р., з/п.130-140т.р.

  • Yii
  • Symfony
  • Laravel
  • Zend

А лучше знать и (Symfony || Laravel) && Yii. У них разные парадигмы.

Зачем советуете Zend?:) Огромный неповоротливый монстр который тащит все, на все случаи жизни. Да и код с ним слишком многословен.

bay_ebook
На сайте с 28.05.2010
Offline
111
#18
demiux:

Зачем советуете Zend?:) Огромный неповоротливый монстр который тащит все, на все случаи жизни. Да и код с ним слишком многословен.

Ну есть случаи когда знания Зенд помогает - иногда например с работой с Yii/Symfony не хватет библиотеки и с composer найти не получается -можно просто подключить эу библиотеку из Зенда, все так их там как г--на)

Нужен прогер на php+mysql+понимание чужего кода? (/ru/forum/540660) Вам сюда PHP-шаман (http://php-shaman.pw/)
danforth
На сайте с 18.12.2015
Offline
153
#19
demiux:
danforth, как то у вас двусмысленно вышло - конструируй авто, но как работают отдельные агрегаты не читай, достаточно знать их названия. Ну подумаешь, заново придумаешь конструкцию ДВС, а может и дизель случайно получится.

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

demiux:

Не поленился, сделал выборку вакансий на hh по Москве:
Всего, з/п.100-110т.р., з/п.130-140т.р.

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

Популярность Yii обусловлена низким порогом вхождения, и тем, что одна из первых документаций на русском, а т.к. наши разработчики именуют переменные $summa = $tovar['cena'] - $skidka; то Yii им как бальзам на душу, можно и поговнокодить.

Yii остался только у нас, если зайдете на odesk/upwork там все пишут либо на laravel, либо на symfony.

https://www.google.ru/trends/explore?q=laravel,zend,yii,symfony

---------- Добавлено 04.02.2017 в 14:00 ----------

demiux:
Зачем советуете Zend

Да вот за тем и советую, что Laravel и Symfony слишком похоже, а расширять кругозор всегда нужно.

D
На сайте с 31.01.2017
Offline
15
#20
danforth:
На самом деле наоборот: ты можешь конструировать авто и не знать названий запчастей, ты должен делать механизмы, знать как запчасть работает, уметь конструировать запчасть, а после прочтения, узнать её название. Немного утрировано, конечно.

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

danforth:
Популярность Yii обусловлена низким порогом вхождения, и тем, что одна из первых документаций на русском, а т.к. наши разработчики именуют переменные $summa = $tovar['cena'] - $skidka; то Yii им как бальзам на душу, можно и поговнокодить.
Yii остался только у нас, если зайдете на odesk/upwork там все пишут либо на laravel, либо на symfony.

Ваша правда. На Yii не пишу и не отстаиваю. Но не раз видел как на коленке, очень быстро, на нем собирали, можно сказать говнокодили сайты. И часто это было экономически оправданно. А рынок довольно таки инертен. Понаписали много, а поддерживать то нужно.

А вот про запад я и забыл. Как правило все новые технологии оттуда приходят. Сам "подсел" на изоморфные веб-приложения. Сначала понадобилось для проекта, а теперь PHP просто не интересен стал.

По поводу Zend - для расширения кругозора конечно же вы правы. Много знаний не бывает.

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий