• Как в codeigniter вызвать функцию контроллера из view?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Во вью вызывается все, что передает туда котроллер, передайте во вью и будет это там
    Не нужно мудрить
    Ответ написан
    6 комментариев
  • Git на продакшин сервере?

    k0t3n
    @k0t3n
    Python, InfoSec, IT
    Есть такая прекрасная вещь, как CI (continuous integration). Сам пользуюсь TravisCI, прекрасное решение. Musthave для современного разработчика.
    Ответ написан
    4 комментария
  • Структурирование исключений. Что вы указываете в качестве exeption code?

    qonand
    @qonand
    Software Engineer
    Как по мне создание справочника кодов бессмысленная и геморройная вещь.
    Почему геморройная - Вы сами на этот вопрос ответили.
    Почему бессмысленная: Вы думаете что клиенты будут обращаться в техподдержку и сразу говорить код ошибки? на практике такого не будет... клиент обратившись просто скажет "Я тут клацнул кнопку а оно перестало работать", и сотрудникам поддержки все равно придется уточнять что и как там у него случилось. Так что как-бы коды ничего не изменят. К тому же по началу справочник будет добросовестно вестись, а в процессе эксплуатации клиент/начальник скажет какому-то программисту Васе - запили как фичу на проекте по быстрому, он ее сделает но в справочник данные не внесет, ибо нафик ему нужен этот гемор. Поэтому как бы актуальность справочника скорее всего на практике пострадает.

    Зачем вообще коды? Возникла ошибка - вернули 500 статус и описание проблемы, записали подробную информацию в лог и все. Обратился клиент в тех. поддержку - посмотрели что за исключение возникло, посмотрели его stack-trace в логе и все. Грамотно сформированный лог + система поиска по нем решают все проблемы с поддержкой.
    Ответ написан
    7 комментариев
  • Как передаются переменные во view в популярных Framework?

    neuotq
    @neuotq
    Прокрастинация
    Обычно такие вещи делаются с помощью extract, скорее всего в ci также.
    Ответ написан
    Комментировать
  • Как различать .env в Laravel для Лайв и Дев-Систем?

    @pantagruel964
    А .gitignore на что?
    Ответ написан
    Комментировать
  • Как на ЧИСТОМ php сделать url вида "/dogs/12"?

    NikitaRain
    @NikitaRain
    Full-Stack Developer.
    Изучите термин ЧПУ.
    Ответ написан
    Комментировать
  • Как организовать процесс постоянной доработки сайтов компании?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    1) Хранить разработку в git или другой вершнконтрол системе.
    2) Пишите задачи в gitlab например, там и задачи распределить на кого-то конкретного можно, и "вес" задачи задать, и время обозначить милестоунами, и в то же время достаточно простой инструмент.
    3) Как написали выше - за постановку задач отвечает 1(!) человек, желательно умеющий четко определить задачу и разбить на этапы в случае необходимости. Если кто-то хочет поставить задачу - через него, иначе понесется ж*па по кочкам - кто во что горазд.
    4) Контроль! Проверка задач раз в 2-3 дня, или чаще, раздача пенделей/плюшек. Некоторые устраивают из этого соцсоревнование с вымпелами и звездами, лично меня это больше раздражает нежели мотивирует/радует, но тут каждый решает сам.
    Ответ написан
    Комментировать
  • Как откатить изменения к незакоммиченному состоянию?

    e_svirsky
    @e_svirsky
    Web Developer
    Если вы переключились к старому коммиту, то ваши изменения остались поверх, и если не было конфликтов, то просто переключитесь на предыдущую ветку и закомитьте. Всё ведь происходит на одном и том же компе?
    Ответ написан
    2 комментария
  • Как откатить изменения к незакоммиченному состоянию?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Если Вы использовали IDE, то возможно там остались. В git их нет, но IDE типа php storm имеет собственный контроль версий (хотя наверное правильнее сказать просто историю изменений) и там могут быть Ваши последние правки.
    Ответ написан
    Комментировать
  • Что делать с папкой vendor при переносе laravel-проекта на сервер?

    DevMan
    @DevMan
    кагбе vendor - это папка билда, и ей нечего делать в гите.
    для этого и придуманы такие шняги как билд-серверы и деплой.

    что делать? тупо копировать, если не доступны более лучшие средства.
    можно, конечно, и в гит ее затоварить, но это изврат еще тот.
    Ответ написан
    Комментировать
  • Как отделить важные данные от конфигов?

    @D3lphi
    Для этого есть замечательная библиотека - dotenv. Суть в том, что вы храните данные в отдельном файле .env, который добавляете в .gitignore. А в vcs коммитете файл .env.example, в котором присутствует только "скелет" параметров без значений. Тому, кто будет устанавливать ваше приложение будет необходимо переименовать файл .env.example в .env и заполнить необходимые опции. Значения из этого файла можно получить по средствам функции env(). Эту библиотеку, кстати, использует популярный php - фреймворк Laravel.
    Ответ написан
    5 комментариев
  • Выбор cms для крупного интернет-магазина?

    @LiguidCool
    Никакую.
    CMS под такую задачу не подойдет.
    Ну и в первую очередь тут нужен грамотный тимлид.
    Ответ написан
    Комментировать
  • Как правильно спроектировать Laravel приложение с уклоном в enterprise?

    SowingSadness
    @SowingSadness
    web-разработчик
    Сейчас напишу немного высокомерно, но опыт позволяет. Уже почти 20 лет в разработке и около 15 в веб.
    Надо понимать, что почти все кто используют многочисленные Фреймворки не понимают что такое ООП. А уж тем более, что такое SOLID и т.д.
    И поэтому, что бы они не писали, в конце-концов превращается в какашку с костылями.
    Да, потом героически проект переписывается с учётом изменений (или ещё чаще умирает) Но, он по прежнему остаётся абсолютно не расширяемым и не поддерживаемым.

    И вот мы возвращаемся к Фреймворкам.
    Нужно брать тот Фреймворк, который писали с учётом определённых парадигм и принципов. Так как этих вот парадигм, достаточно описанных и изученных не так много (на самом деле их 2.5 штуки), то можно сразу ориентироваться на ООП + MVC(или MVP или MVVM) + SOLID
    Если Фреймворк что-то из этого нарушает, то он по умолчанию не может вам дать возможность написать хорошее, расширяемое приложение. А хороший Фреймворк, даже начинающим программистам должен прививать правильные подходы к разработке. Что-бы хочешь, не хочешь, а hello world уже не превращался в ад.

    Сразу оговорюсь, что я давно "забил" на Фреймворки. Есть один идеальный — это Pyramid. А оцениваю любой продукт по документации. Там сразу видны все огрехи и косяки. Буду писать и параллельно смотреть в доки.

    Larvel
    Первое что я вижу в этом Фреймворке, что большая часть работы каркасных компонентов завязана на статических вызовах. На этом можно уже, даже и остановиться. ООП, по большому счёту тут нет. Суть ООП в использовании объектов. Тут же класс выступает в качестве пространства имён функций.
    Раз нет ООП, то и нет всей теории и принципов связанных с ним.
    А раз под этим Фреймворком не заложено никакой теории, то в 99% случаев можно сказать, что на нём что-то правильно, написать невозможно.

    Если взглянуть глубже, то открывается ещё больше ада:
    ActiveRecord.
    Плох по умолчанию. С ним очень тяжело контроллировать целостность данных. Вам нужно придумать слой абстракции, где вы будете транзакционно записывать все данные вне бизнес логики. Фреймворк вам тут не поможет. Он предложит это делать в экшене (контроллере). И тут вы столкнётесь, что при написании чего-то сложнее чем бложик, вы будете терять целостность. Ибо бизнес логика и работа БД будет в одном методе. Отладка будет усложняться, ошибок плодиться и т.д.
    И не зависит это от программистов. Шаблон сам по себе провоцирует ошибаться.
    Далеко за примерами ходить не нужно, уже треш.

    Чем больше примеров я смотрю, тем больше не понимаю, как все это дело расширять. Как вставлять прозрачно через весь проект свои собственные аспекстные решения. Например RBAC. Или, если нужно, логику работы приложения отделить от БД и когда нужно, подставлять необходимую реализацию.
    Или сделать работу всех экшенов в рамках клиента, но производить авторизацию по пользователю(сотруднику)

    Все это предлагается зашивать прям в контроллерах, с помощью protected или private методов.
    Повеситься. Сложность приложения зашкалит.

    Symfony
    Только при выходе 2 версии я работал с этим чудом. Разработчики писали его под хапйом dependency injection. Мало того, что они взяли не самую хорошую стратегию для реализации всего костяка фреймворка, так ещё и сделали её не правильно.
    Они написали универсальный DI Container и кладут в него все что угодно, используя в качестве идентификатора строчку.
    Строчку, М**Ь ЕЁ! Не интерфейс — строчку!
    И знаете чем это аукнется? А тем, что при разработке своего приложения или очередного бандла, вам будет говорить, что в контейнере лежит что-то не то и вы подохните в конфигурационных настройках. А все потому что, подход: ВСЁ через DIC — строго навязывается.
    Расширение этого чуда, тоже причинит вам массу головной боли. Ведь, зачастую, вы будете работать с классами, которые ждут не интерфейс, а что-то из контейнера с ключём "я_твой_дом_шатал".

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

    Но, по правде говоря, слепить что-то годное возможность есть.
    Если взять микро ядро symfony, прикрутить Doctrine, то получится что-то годное.
    Но встаёт вопрос. А зачем вообще symfony, если можно взять doctrine и написать все остальное свое?
    И тут вы окажетесь правы — незачем.

    Ситуация с Symfony в enterprise очень схожа с ситуацией с Django. Повидал уже с десяток проектов, где последнюю брали для больших приложений. В итоге от Django оставались рожки да ножки. Всю её переписывали.
    Спрашивается — и зачем? Просто потратили кучу времени.

    Так что, если нужен суровый enterprise. Что бы писать что-то большое, с возможностью расширения — берите Pyramid и переходите на python.
    Ничего, даже близко с пирамидкой, по возможностью расширения, даже близко не лежало.
    Ответ написан
    33 комментария
  • Как правильно спроектировать Laravel приложение с уклоном в enterprise?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    Главное правило счастливого энтерпрайза - не тащить методики и технологии в которых нет опыта. Если вы не работали на проектах с DDD, не делали своих пет проектов чтобы опробовать подход, то не надо тренироваться на больших проектах.
    Я уже 10 проектов в мире симфони видел и с тремя работал, везде попытки сделать DDD заканчивались невероятной сложностью поддержки после которой даже битрикс не кажется ужасом. 4 дня и изменения в 32 файлах чтобы добавить в список сортировку и фильтрацию... Наверное, можно писать на DDD правильно и с быстрой разработкой и лёгкой поддержкой, но я ещё таких проектов ни сам не создавал, не работал с чужими, не видел в качестве примеров. Поддерживать 10 летний легаси стартанутый на php4 с глобальными переменными гораздо проще чем любую поделку ddd-шников.
    Ответ написан
    Комментировать
  • На чём вы разворачиваете Symfony?

    artem90
    @artem90
    TeamLead, Developer
    Мой опыт такой:
    Пишу баш скрипты для автоматической установки и настройки nginx, php7 (fpm, cli), MySQL, nodejs и redis.

    Все это запускаю на дебиан 8 под докером, через docker-compose, добавив в него pma иногда.

    Потом все это дело так же легко взлетает на ci в гитлабе (Travis ci и любую другую ci)

    Итого полный цикл установки, настройки и тестирования) к тому же все скрипты поделены на отдельные куски типа install-nginx, install-php и потом можно переиспользовать эти кусочки в другом проекте.
    Ответ написан
    4 комментария
  • Споры с менеджером?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    никак, грамотный менеджер в уме добавляет время еще

    главное - чтобы 2) умел вовремя от вас получать инфу о непреодолимых затыках и 1) проверял, что вы полняли и делаете именно то что нужно и так как нужно
    Ответ написан
    2 комментария
  • Lamp или Denwer? Объясните подробно: что такое Lamp?

    Sanes
    @Sanes
    Ставь OpenServer и занимайся программированием. Успеешь еще пострадать с конфигами LAMP. Про Denwer забудь.
    Ответ написан
    Комментировать