Здарова, анон! Знаю PHP, могу написать любой движок, проблем нет, но вот у меня бомбит от своего кода!Не знаю почему так! :cОсвоил MVC, написал на нем сайт, но бомбанул и удалил его на хуй, ибо мне кажется, что мой не универсален и ему что-то не хватает!Как быть? Как одолеть эту хуйню?
бамп
пример хотя бы скинь, мы тут не ванги!
>>682499пример роутера
Работай за деньги и вся эта хуйня пройдет максимум через 2 недели
>>682509Я хочу уебать тебя гаечным ключом за такое говно.
>>682616что не так? :(
>>682619Если кратко, то всё.Использование глобальных переменных в классе.Хардкодинг.
>>682624>енных в классе.>Хардкодинг.где ты там увидел глобальную переменную?
>>682692>Суперглобальный массив $_SERVER. Ты ещё спроси где там блядь хардкодинг.
>>682701погоди, а как без него я получу то, что приходит с url? GET? не, спасибо
>>682732Челодлань.икнТы просто мегамакака. Эталон говнокодера. Без понимания принципов как объектного, так и структурного программирования. Можешь этим гордиться.
>>682745так скажи, как правильно, пиздеть все могут
>>682772Главное не сдавайся.мимохуй не понимающий в PHP
>>682745тролль плиз. На PHP то хоть писал вообще, уёбок? загляни в любой opensouce фреймворк маня, и съеби отсюда.
1
>>682778> загляни в любой opensouce фреймворкбольшая часть опенсорца написана макаками. брать опенсурц в пример -- лучшая блядь идея в жизнимимо++господин
>>682509Хардкод - хардкодик.
>>682819Естественно лучше раздристать код по 5000 файлам. Особый шик - если это xml генерирующий xml.
Я проходил такую хуйню, оп. Такие же чувства. Трудно сказать почему так, но попробую.Во-первых это пхп, далеко не самый выразительный и удобный язык.Во-вторых веб-фреймворки это часто совместная работа сотен людей, ты сам чисто физически не вытянешь предусмотреть все возможные use cases, хотя обычно новые фреймворки интенсивно тянут идеи из существующих попутно пытаясь залатать в них дыры.Теперь о том что такое хорошо. Показателен пример жквери. Он дефакто вытеснил к хуям все существовавшие жс-библиотеки того времени. Потому что всё получается коротко и ясно. Если ты знаешь что у тебя действительно уникальные фичи которые вот так вот твёрдо всё вытеснят, то делай. Я например часто использовал yaml когда он ещё только вышел, а у всех конфиги были в ебаном xml.Но если честно, моё мнение таково что лучше перейти на рельсы/джангу чем пытаться выебать пхп в миллионный раз снова. Пхп сломан by design, его создатель не хотел делать из него язык, и как ни странно, действительно, пхп до сих пор отличный шаблонизатор, но хуёвый язык.
>>682509ебать ты говноед
>>683449То есть не стоит использовать MVC?
>>683449Бля, их нужно учить!Я еще не до конца знаю php, а тут python начинатьмне говорили, что он легкий, но
>>683555>>683556Ну вот как бы я о том же. Идей у тебя нет, а фреймворки пилишь. Поучиться это очень полезно на самом деле, но если ты хочешь зарубить сразу на века, то нужны идеи. И это я должен у тебя спрашивать нужен ли MVC, ты же фреймворк запиливаешь.
>>683560я работаю уже месяц над ним, но ничего хорошего не выходит.Могу написать сайт на нем, но выходит говнокод.Ты говоришь учить питон? Если я напишу на ем MVC фреймворк, то он будет лучше php? не думаю.
>>683563Ну так формализуй что конкретно говнокод. Что тебе не так? Работает же.Питон/руби я бы посоветовал выучить только для того чтобы потрогать рельсы/джангу. Увидишь много интересного, инфа соточка. Веб-фреймворки перестанут быть чем-то невероятно сложным. Хотя я наверное уже давно с пхп не контактировал, но сомневаюсь что что-то изменилось принципиально.
>>683571вот главный вид, что с ним не так?
>>683579Ну не знаю. Запили на этом сайтец/рест интерфейс/ещё чего-нибудь такое. Вангую что проблемы начнутся когда ты будешь делать разные блоки на сайте, которые должны будут кочевать/наследоваться/заменяться между вьюхами.
>>683604я тоже об этом думал
но что можно использовать вместо mvc?
>>683619Обычно всё что есть так или иначе похоже на mvc. Отличаются детали. Например где-то можно отрендерить шаблон в строку, а где-то нельзя.
>>682494 (OP)>могу написать любой движокЧо бля?>>683449>хуёвый языкЧо бля?
>>683659Чо бля?
>>683649Скажи, двач написан на wakaba, там все в одном файле.wakaba.plтак скажи, что это? это есть правильный?
>>683691Внутри этого файла ты обязательно найдёшь слой данных, слой представлений и слой логики. Вообще вакаба это тот ещё спагетти говнокод. Так писали в далёком засратом году. Даже на пхп.
>>683703лучше вообще тогда не писать сайты
>>683731Чо бля?
>>682778> На PHP то хоть писал вообще, уёбок? Не поверишь, ещё на 3.>>682772Передавать значения в методы класса, вместо использования суперглобальных для начала. Это упростит использование класса в том случае, например, если тебе надо будет не брать гет или пост параметры, а прогонять данным классом файл или БД, например.Значения полей класса задавать при создании объекта через конструктор, использовать перегрузку конструктора, вот это всё.У тебя меганегибкий код. Для того чтобы изменить что-то отличное от твоей базовой конфигурации, придётся лезть в редактирование класса непосредственно, это дно.
>>683807И да, я долго не понимал, почему похапе программеров называют макаками. Теперь понял.Это не похапе язык для макак, это макаки засели на похапе. Хуй знает почему, но все блядь решили что раз можно валить в кучу данные, шаблоны функции и классы - то так и надо делать.Ну блядь и низкий порог вхождения.
>>682494 (OP)Ты никогда не одолеешь эту хуйню, пока не начнешь думать головой, вместо того, чтобы задавать подобные вопросы. Единственный критерий, по которому ты должен оценивать свой код, это корректность его работы и только (ну, кроме случаев, когда ты работаешь над ним не один и должен придерживаться определенных конвенций). Да, глобальные переменные и хардкодинг это не найс (но далеко не во всех случаях), но если ты перестанешь их использовать потому что пацаны с сосача сказали, что это зашквар, самостоятельно не дойдя до понимания, почему это так, то ты только сильнее укрепишь свой статус кодомакаки, способной только на копипастинг задроченных паттернов.
>>683814Я тут ещё раз напомню, что пхп это хороший шаблонизатор, и именно так он изначально и задумывался. Поэтому всё свалено в кучу и все обычноязыковые фичи привинчены как до жопы дверца.
Рейтаните мой роутер плиз и как я реализовал подключение вьюхи%%если говно, то обьясните где и почему так не правильно и каким проблемам это может привести
>>6838343 скрин - говно, так не нужно делать!
>>683834зачем ты на 2 скрине подключаешь через include?у тебя есть главный вид, который должен это делать
>>683838ну, я запускаю роутер, вытаскиваю нужную вьюху, запускаю контроллер отдаю туда нужную вьюху, потом там подключаю шаблон, а он уже подключает нужную вьюху, по-моему очень удобно.А вот тебя я не совсем понял
>>683807Можно же Singleton использовать
>>683834Рейтанул.Ты короче не переживай так насчёт всего что может произойти не так. Код, в особенности фреймворков, так не пишется. Пишется сначала минимум решающий определённую задачу. Возможно даже не отдельным фреймворком, а прямо встроенный в проект. Затем пишется второй проект, использующий много общего с первым. Общий код постепенно выносится в фреймворк, оба проекта перенимают друг у друга всё хорошее, интерфейс фреймворка несколько улучшается.Далее идут третий, четвёртый, тысячный проекты. И каждый требует что-то своё, какую-то фичу, мало ли что кому в голову взбредёт. Фреймворк совершенствуется. Кто-то вносит свои идеи как можно оптимизировать некоторую рутину, фреймворк совершенствуется дальше. Вот так оно и растёт.То есть конкретно у тебя, если всё работает - заебись, не трогай это. Не плоди сущностей и абстракций, не пытайся предусмотреть то что конкретно тебе конкретно сейчас не нужно. Нет, конечно какую-то заготовку можно оставить чтобы проще было втиснуться с изменениями, но есть вариант увлечься и так и не решить задачу, увязнуть в придумываниях.То есть вот тебе сейчас тут нарассказывают что говно потому что во фреймворкнейме это сделано иначе и красивее, но на деле это всё мелочи. Резюмируя: делай так чтобы работало и делай так чтобы было проще и короче.
>>683839смотри.Начальная точка - это indexв index допустим подключаем роутер.!Ты через роутер обращаешься к нужному контроллеру, этот контроллер берет из своей модели данные и отдает их в вид.Если нету модели, то просто запускаем вид.pub funct indexAction(){ $this->view = new View(); // это можно сделать в главном контроллере // далее $this->view->render('имя вида'); / главный вид получает через метод render имя вида затем подключает нужный вид но делать так: include 'файл вида'; в контроллере это анриал /}
может кто покажет пример роутера?
но лучше всего использовать Autoload!spl_autoload_registerspl_autoload_unregisterа пространства имен называть именами папокбудет подгружать сразу же
>>683835А, кстати, почему считается зазорным мешать хтмл с пхп как на скрине? Просто это же единственная киллер фича языка, и если ей не пользоваться, то у пхп не остается ничего, что делало бы его хотя бы не хуже питона или старого, доброго перла.
>>683877Если все так будут делать, никто не станет платить ОПу за абстрактные фабрики фабрик. Это единственная причина не использовать PHP для того, для чего он предназначен, а писать на нём так, как пишут на Java.
>>683845окей, я тебя понял, спасибо>>683844спасибо за совет
>>683845Неточности: - роутер это штука которая только разбирает УРЛ и решает что делать. Если он еще и находит и запускает контроллер то это уже Фронт Контроллер, а не роутер: http://design-pattern.ru/patterns/front-controller.html> этот контроллер берет из своей модели данные и отдает их в вид.У тебя одшибочное представление что модели и контроллеры соответствуют друг другу один к одному. Не так. Модели - это сущности, например в базе данных, а контроллер - разделы и страницы сайта. То же самое кстати и вью, один контроллер может вызывать несколько разных вью, как и моделей.>>683848function route($url){if ($url == '/') {return 'index';}return false;}Посложнее: http://symfony.com/doc/current/book/routing.htmlhttp://symfony-gu.ru/documentation/ru/html/book/routing.html>>683877> ничего, что делало бы его хотя бы не хуже питонаТайп-хинтинг, abstract, public, private. У PHP есть вещи которые позволяют писать на нем большие приложения в отличие от заточенного на простые скрипты Питона. > старого, доброго перла.плиз>>683898Неосилятор. Фабрики не просто так придуманы.
>>683930типа как на первом скрине ? >>683834
>>683930>Неосилятор. Фабрики не просто так придуманы.Конечно, они придуманы, чтобы увеличить число человекочасов, требуемых для реализации проекта, дабы занять массы в эпоху повсеместной автоматизации труда.>Тайп-хинтингПривет. https://docs.python.org/3/library/typing.html>abstract, public, privateСущности сверх необходимого, так и запишем.
>Тайп-хинтингЯ не смотрел но есть подозрение, что эту фичу тоже запилили максимально самобытной. Дженерики-то есть? Есть там какие-нибудь lolphp мелочи,
>>684061это вопрос к PHP-трудягам.
>>683961>Сущности сверх необходимого, так и запишем.Ну да, если ты девственник, то и остальным хуй не нужен, да?
>>684077Неверная аналогия. Пойти и трахнуть самку слишком просто, поэтому мы запилим нравственность, моногамию и институт брака. И религию, религию забыл. Похуй, что это создает больше проблем, чем решает, зато все при деле.
>>684086Ну зачем так категорично. Иногда, без ущербной промежуточной концепции невозможно, как минимум, осознание ее ущербности и движение вперед (как был бы невозможен текущий уровень развития человечества без перечисленных тобой вещей).
>>684086Верная абсолютно. Если ты не пользуешься хуем, то НИНУЖЕН. Вот какая у тебя логика.
Абу вот не ебет, что его сайт в одном файле Makaba.cgi
>>684211Ладно, если мне понадобится шестой раз за ночь удовлетворить твою ненасытную мамашу, я возьму здоровый такой дилдак (Java), которому, уж тем более, твой фимозный короткоствольный PHP не составит конкуренции. Такая аналогия ясна?
>>682494 (OP)Возьми и реши реальную задачу, а не пили кодинг ради кодинга.
>>682494 (OP)Да нормальный код ОП, такое же писал. Если планируешь оставаться на пхп, возьми фреймворк какой-нибудь. Но ты правильно делаешь то что пишешь костыли, свой mvc и так далее, т.к. это дает представление о том в чем ты работаешь, возможно ты будешь main контрибьютером в каком-нибудь фреймворке (отличное портфолио как по мне). Скажу так: для себя такой код это норм, если делать проекты, то бери фреймворк (ларавел тотже)
я просмотрю другие фрэймворки и напишу что-то свое. всем спасибо.
>>683579>PATH['app']Когда это в php завезли массивы-константы?
>>684256Это называется единая точка входа.Хотя хуй его знает, что там под капотом.
>>684830в php 7 завезли, а еще многое другое