Задать вопрос
  • Актуален ли Yii2 Фреймворк в 2020?

    myks92
    @myks92 Куратор тега Yii
    Нашёл решение — пометь вопрос ответом!
    Тут много нюансов и ответить однозначно сложно. Как уже написал Иван Шумов фреймворк - это инструмент. Каждый инструмент подбирается под конкретную задачу:

    • СMS - система управления сайтом (Wordpress, Joomla и т.д.). Создан для простого и удобного управления сайтом (контентом). Как правило, доступен для работы простому пользователю, без знания языков программирования. Подойдёт для: простых сайтов, блогов, там где не требуется нагрузка и безопасность.
    • RAD framework (Yii2) - фреймворк для быстрой разработки. RAD Фреймворк имеет, монолитную и связанную архитектуру. Он является антипаттенрном и позволяет вам делать всё что угодно, лишь бы вы быстро собрали свой проект. (Используется паттерн Table First - спроектировали базу и по схеме сгенерировали модели данных). При этом Вам никто не говорит, что он не может использоваться для серьёзных проектов. Например, DNS..
    • Компонентные фреймворки (Symfony, Laravel). Это фреймворки, которые разделены на независимые компоненты, которые вы можете подключать к своему проекту при необходимости. В самом фреймворке заложен только необходимый минимум, а всё остальное вынесено в компоненты. Эти компоненты могут использоваться (или не использоваться). Могут использоваться для другого фреймворка (сам Yii2 использует компоненты симфони). Doctirine, которая позволяет вам забыть о базе данных и сосредоточиться на коде. Фреймворк задаёт вам некий стиль, некую структуру и типизацию и требует более хорошего и обдуманного кодинга. Например, при использовании twig вы не сможете сделать запрос в view. Чего нельзя сказать про Yii. Вы там можете построить хорошую бизнес логику, что и встречается...
    • Микрофреймворки (Slim). В таких фреймворках заложен самый минимум, а всё остальное программист должен искать или писать самостоятельно, выстраивать свою архитектуру приложения. Он легкий и простой. Кто-то и Symfony относит к микрофреймворкам. Тут меня многие могут упрекнуть. Подойдет для очень простых, гибких, легких приложений, например, микросервисов. Фреймворк не задает вам никаких правил и архитектуры. Вы должны сами продумать все детали приложения. Где-то используете twig, где то Data Mapper, где-то ActiveRecord. Для работы с таким фреймворком требуется много знаний и опыта. Так как вам всё придется делать самому. Здесь за вас никто не подумал.

    Что же для чего выбрать?
    Решать вам исходя из конкретной задачи. Здесь нет понятия хуже/лучше. Чтобы что-то выбрать нужно на каждом попробовать собрать пару проектов. Тогда и будет понимание когда и что выбирать. Это как автомобиль. Какой лучше BMW или LADA? Оба автомобиля, но каждый для своей аудитории, по своим потребностям, для своих задач.

    Почему другие говорят что Yii2 плохой?
    • 2 версия морально устарела. Это не значит что ВЕСЬ фреймворк плохой, просто им давно никто не занимался. Сейчас идет разработка Yii3, которая многократно лучше 2 версии, но 3 версия доступна только в демо. Поэтому, если хочется писать НОВЫЙ проект на Yii, то я бы не стал выбирать 2 версию. Можете подождать Yii3, но никто не знает когда будет релиз. Можете начать писать используя Yii3-demo, но там может всё поменяться к моменту релиза.
    • Он монолитный. Если вам требуется сделать проект используя много приложений с разными компонентами, то пойдёте по пути Advanced шаблона, где каждое приложение будет папкой: backend, forntend, console. Однако при большой нагрузке вам потребуется разносить приложения. Тогда ваш core будет дублироваться во всех приложениях. Там будет то, что вам даже не требуется. Потому что Yii2 монолит.
    • В Yii2 используется Actvie Record. AR - это не плохо. Его многие любят, многие ценят и хвалят. Но для больших проектов он предоставляет неудобства. Например, при изменении поля в базе данных - приходится менять все свойства и надеяться что везде поменяли, так как в GrigView используется магия, при получение значений из модели 'value' => 'profile.last_name'. Так же нельзя сделать свойства модели (сущности), приватными. Из-за чего состояние модели можно изменить где угодно и вы никак не проконтролируете это.
    • Много абстракции, которую не распознает редактор. Например, вы можете вызвать в контроллере Yii::$app->user->id. Вам приходится делать докблок, что User это common/auth/Identity, а не yii/web/User


    Ну и так далее. С каждым из этих пунктов можно бороться, при правильном подходе. Как уже сказали в плохих руках любой код может пахнуть. Но это основное. Надеюсь, меня не раскритикуют другие за спорные моменты. В таких вопросах всегда есть разногласия) Думаю, что смог донести в сжатом виде отличия.
    Ответ написан
    4 комментария
  • 301 Moved Permanently. Как обрабатывать ?

    Hungry_Hunter
    @Hungry_Hunter
    Забирайте страницу с помощью curl, используйте

    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
    Ответ написан
    1 комментарий
  • Как правильно отправить json через POST с помощью CURL?

    brutto
    @brutto
    Conceptmeister, Darudar
    Если вы шлёте на сервер application/json, то в $_POST у вас ничего не окажется -- он будет пустым. Что бы прочитать такой POST-запрос вам понадобится что-то вроде этого:

    $json = file_get_contents('php://input');
    $obj = json_decode($json);

    Подозреваю, что тут есть ответ на ваш вопрос:
    stackoverflow.com/questions/19004783/reading-json-...

    PS: О том что такое php://input и как с ним можно работать и когда говорится вот тут: php.net/manual/ru/wrappers.php.php
    Ответ написан
    2 комментария
  • Действительно ли важно правильное питание для мозга программиста (с точки зрения науки)?

    DmitryITWorksMakarov
    @DmitryITWorksMakarov
    По своему опыту скажу: вот когда на каком-нибудь мероприятии выпьешь так от души (не один бокал красного, а побольше), дня 3-4 нормально не соображается. Я могу кодить. Но придумывать красивые абстракции и писать отличный код, вряд ли. Мозг функционирует на каком-то самом верхнем уровне.
    Также заметил, что если не принимаю витамины, то все время хочется спать. Весь день сонный. Домой приходишь, поужинал и вырубился. Никаких домашних дел, личной жизни, хобби. С витаминами сил как-то больше. Витамины - обычный Компливит.

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

    А вообще в таких вопросах нет четкого конкретного ответа: если будешь бухать Золушка, то ровно в 12 часов твоя голова превратится в тыкву. Тут правильнее говорить о корреляции. Чем менее правильный образ жизни ведешь, тем больше вероятности ты получишь проблемы и тем раньше.
    Ответ написан
    4 комментария
  • Действительно ли важно правильное питание для мозга программиста (с точки зрения науки)?

    @LEKAPb
    Расскажу историю из моей жизни которая началась в сентябре этого года, а выводы делайте сами. К своим 25 годам я имел безумную продуктивность со следующим рационом:
    1. Сигареты - 3 пачки в сутки.
    2.Отличный молотый кофе из кофемашины с безумным количеством сахара- 10 -12 кружек.
    3.Очень жирная и калорийная и безумно вкусная еда.
    4. Энергетики несколько банок для разогреву.
    5. Шоколадки и прочее сладкое в неограниченном количестве.
    Данный рацион вводил организм в "pежим бога" на 7 дней в неделю , можно было не есть или не спать ,очень продуктивно решать задачи почти круглосуточно , а того более и несколько задач одновременно. Безумное маниакальное желание постоянно кодить ,позволяло успевать делать сайд проекты и работать на фрилансе. Все было отлично и я не собирался сбавлять темп до тех пор, пока скорая не увезла меня чуть ли не с рабочего кресла в больницу, где я провалялся ещё около месяца. Сейчас строгая диета - сухари и травяной чай. Успокоительные и постельный режим. Конечно я понимаю что у меня это крайний случай и на него ориентироваться не стоит, но выводы для себя можно сделать следующие:
    1.'Самое главное - это здоровье. Когда ты полудохлых тебя меньше всего интересует твоя продуктивность.
    2. Здоровьем надо заниматься и правильно питаться исходя минимум из самоуважения к себе.
    3. Работа должна стать частью вашей жизни а не самоцелью, правильно расставив приоритеты вы поймёте, что необходимо развивать что бы быть более успешным в своём деле. Продуктивность - это далеко не самый важный показатель в работнике, есть и другие которые тоже влияют на то как ваша работа оценивается.
    4. Вы прежде всего человек. Начните правильно питаться и вести Зож хотя бы как человек, а потом уже как программист.
    Ответ написан
    Комментировать
  • Действительно ли важно правильное питание для мозга программиста (с точки зрения науки)?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    The truth is out there.

    Собственно, вопрос правильный. И в какой-то степени интересный. И даже очень дисскуссионный - пока ещё нет рабочей теории о работе мозга. Вот что довелось узнать мне на собственном опыте:

    1) Диета. Классная штука, с ней чувствуешь себя по настоящему другим человеком. Важно, критически важно понимать, что диета - синоним рациона, иначе - обоснованные правила приёма пищи, включая собственно рацион, то есть состав, разнообразие продуктов. И здесь всё очень просто - есть надо, надо много и разнообразно. 20% утром, 50% на обед и 25% - ужин, можно откусить по 5% от каждого и сделать полдник. Наедатся на ночь плохая идея - прямая дорога к ожирению (ибо во время сна выделяются интересные гормоны стимулирующие жировые отложения), так и проблем с сердечно-сосудистой системой. Ну и веганы идут лесом - собирать жёлуди.

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

    3) Допинг. Кофеин - плохая идея, не чаще раза в неделю. Полностью нарушает энергетический баланс за счёт того, что у кофеина схожая структура с АТФ, таким образом организм обанывается о настоящих запасах энергии, полностью высвобождая запасы энергии на внешние возбудители; результат - угробленный энергетический обмен, который восстанавливается очень медленно. Никотин - забавный ноотроп, который в общем-то яд, однако оказывает угнетаетающие воздействие на ЦНС помогая концетрироваться. Амфетамины - классная штука, по настоящему работает, однако оказывает деструктивное воздействие. Другими словами - конкретно сейчас думаешь быстрее и конкретнее, однако послезавтра не думаешь совсем. Ноотропы спорны, могут помочь, могут нет, немного комулятивны, читай выпил курс, а через месяц понял матан, однако исследования показали улучшения в пределах погрешности.

    В целом, да. Питание важно. Но стоит понимать про такую вещь, как пределы возможностей. То есть много поедать апельсинов - плохая идея, гипервитоминоз аскорбиновой кислоты угробит мочевой тракт.
    Ответ написан
    17 комментариев
  • Yii2 виджеты NAV и MENU не принимают массив?

    Может все-таки так нужно:
    'items' => Category::CategoryMenu(),
    Ответ написан
    2 комментария
  • Как установить yii2 через Composer в PhpStorm?

    iiifx
    @iiifx
    PHP, OOP, SOLID, Yii2, Composer, PHPStorm
    Добавляем виндовый Path к OpenServer:
    8506c9265c4c441298b1422f51031c67.png
    Потом делаем закладку на PhpStrom:
    cc00a46af013421e9ecbe2d666b34076.png
    Потом запускаем PhpStorm через OpenServer:
    fccc82d7508341eeae47f4534b7cd861.png
    После чего в консоли все начинает работать:
    33ade7624671432d9730dea417e88962.png
    Ответ написан
    7 комментариев
  • Интернет-магазин на Ruby on rails. Нужен толковый совет?

    viktorvsk
    @viktorvsk
    После некоторого времени потраченного на поиски екоммерс на руби сделал вывод, что спри - это единственный вариант. По коду, по поддержке. Поддерживает и 3 и 4 рельсы. Завести можно и на mysql и на Postgres и на sqlite, даже на монго, думаю. Разве что, мне кажется, не стоит использовать Synergy (русский адаптированный форк), лучше оригинал.

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

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