• Шаблоны проектирования - с чего начать знакомство?

    @artem78
    Советую почитать книгу "РНР объекты, шаблоны и методики программирования" Мэтта Зандстры. Подробно описываются как возможности ООП присущие PHP, так и наиболее распространённые шаблоны проектирования.
    Ответ написан
    3 комментария
  • Что делают? и: в php и js?

    Stimulate
    @Stimulate
    могу
    Комментировать
  • Что делают? и: в php и js?

    neuotq
    @neuotq
    Прокрастинация
    'Если это правда' ? 'Вернуть это' : 'Иначе вернуть это'
    Ответ написан
    Комментировать
  • Symfony, редирект пользователя в случае отсутствия какой либо информации в БД?

    voronkovich
    @voronkovich
    Подписчик был бы полезен, если бы логика проверки дублировалась в нескольких контроллерах. А так... Не вижу смысла делать подписчик. Я бы просто вынес проверку в отдельный метод контроллера и все.

    public function redirectIfNoCategoriesFound(): ?RedirectResponse
    {
        if ($this->getDoctrine()->createQuery('SELECT EXISTS ...')->getSingleScalarResult()) {
            $this->setFlash('message', 'Сначала вам нужно создать категорию.');
    
            return $this->redirectToRoute('new_category');
        }
    }


    Но проверка в контроллере как то не по фен-шую.

    Почему? Какой принцип MVC/SOLID/etc. нарушается?

    UPD. Если все-таки решите использовать события, лучше делайте подписчик на событие kernel.controller, чтобы узнать имя контроллера. Подробнее см. https://symfony.com/doc/current/event_dispatcher/b...
    Ответ написан
    Комментировать
  • Что обязательно нужно знать в PHP и что посоветуете выучить?

    voronkovich
    @voronkovich
    Я бы порекомендовал посмотреть плейлист PRS-7 фреймворк на канале Дмитрия Елисеева.
    Там обсуждается создание современного фреймворка на PHP и рассматриваются такие темы как: PSR, Dependency Injection, шаблонизаторы и т.д. Крайне рекомендую!

    Также советую почитать книгу Джоша Локхарта (создатель фреймворка Slim) Современный PHP.
    Slim-фреймворк тоже можете посмотреть, он достаточно добротно написан :).

    TDD. Есть хорошая книга Кента Бека Экстремальное программирование. Разработка через т.... Примеры там даны на Java, но будут понятны любому кто знает хотя бы один Си-подобный язык (PHP к таковым относится!).

    UPD: Вы просили указать: можно ли с вашими знаниями устроится джуном. Я думаю, что да, можно.
    Ответ написан
    Комментировать
  • Symfony, Как корректно обновить сущность, имеющую поле типа "Файл"?

    voronkovich
    @voronkovich
    В представленном коде должно затираться свойство fileName, т.к. оно у вас указано в форме TaskType. Вообще говоря, в него должен сохраняться экземпляр UploadedFile (или null если поле не было заполнено при отправке формы), а у вас в аннотации указано, что это строковое поле.

    Вам не нужно делать "мэппинг" поля с файлом в сущность (укажите 'mapped' => false):

    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('taskName',TextType::class)
            ->add('file', FileType::class, [ 'mapped' => false, 'label' => 'Документ'])                
        ;
    }

    Экземпляр UploadedFile можно получить вручную:

    $uploadedFile = $form['file']->getData();
    
    $fileName = 'myfile.txt';
    
    $uploadedFile->move('public/uploads', $fileName);
    
    $task->setFileName('public/uploads/'.$fileName);
    Ответ написан
    4 комментария
  • Обновить версию php?

    Austin_Powers
    @Austin_Powers
    Web developer (Symfony, Go, Vue.js)
    Миграция php5.x на php7.x. "Обратно несовместимые изменения" - то что вам надо учесть, и устранить из своего кода, если запланируете перейти на более свежую версию.
    Ответ написан
    Комментировать
  • Обновить версию php?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Если это сделать будет ли работать сайт ?

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

    Или нужно что то менять на сайте что бы перейти на новую версию ?

    Конечно нужно.
    Ответ написан
    Комментировать
  • Какие стратегии повышения зарплаты существуют?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Центральный показатель для бизнеса, а следовательно и руководителей, как людей представляющих интересы этого самого бизнеса - это коэффициент возврата инвестиций (ROI). Соответственно, сотрудник должен приносить компании больше денег, чем потребляет. Естественно, что чем выше разрыв между затратами и прибылью, тем лучше, поэтому фонд оплаты труда руководитель должен держать на том минимальном уровне, который гарантирует бесперебойную работу сотрудников. Один из факторов этой бесперебойности - низкая текучка. Сотрудников терять нежелательно. И чем ценнее для компании сотрудник, чем более он профессионален и/или чем больше на него завязано, тем дороже обходится его потеря. Натурально в деньгах. Придётся затратить больше, чем обычно, денег на поддержание работы без него. Придётся затратить деньги и время (те же деньги) на поиск, найм, введение в работу, возможно, обучение нового сотрудника. При этом он может оказаться совсем неподходящих и цикл придётся повторить. Или может оказаться просто хуже прошлого и эффективность отдела снизится. Поэтому, когда сотрудник приходит просить прибавку, руководитель оценивает может ли этот сотрудник уйти или только блефует, насколько легко его будет заменить, какой урон компании будет нанесён его уходом. Потом руководитель оценивает стоимость расширения ФОТ - есть ли резервы, какой сейчас ROI, будет ли больший ROI от реинвестиции этих средств во что-то другое? Если уход сотрудника будет стоить меньше, чем увеличение ФОТа, сотруднику откажут.

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

    Из этого вывод, стратегия проста - увеличивайте собственный профессиональный уровень на столько, чтобы свободно менять компанию, как только вас что-то перестало устраивать.
    Ответ написан
    4 комментария
  • В чем отличие контроллера от экшена?

    SerafimArts
    @SerafimArts
    Senior Notepad Reader
    Немного о наболевшем:

    В MVC нет экшенов. MVC работает следующим образом:
    - Во вьюхе располагается модель (например "текстовое поле")
    - Любые изменения в модели сразу же изменяют вью (изменяем текст в текстовом поле и этот текст визуализируется/рендерится)
    - Контроллер подписывается на события вьюхи (например "изменение текста в текстовом поле") и выполняет какое-либо действие, в том числе изменяет модели (ну хз, например проверяет что длина не более 10 символов. Или другой пример. Контроллер подписывается на событие нажатия кнопки "delete" и удаляет текст из модели текстового поля, а модель сразу же перерисовывается, т.к. напрямую связана с представлением).

    MVC-Process.png

    Всё это прекрасно видно на картинке, которая взята с вики: https://ru.wikipedia.org/wiki/Model-View-Controller

    В вебе реализация MVC без сокетов не возможна физически (который, к слову, в районе 80х-90х годов назывался MVCE: Model-View-Controller-Editor, не суть). Большинство существующих решений - это вариации MVP (Laravel/Symfony/etc) с небольшими нюансами. Контроллер там называются контроллерами, а не презентером по принципу GRASP и никак не связан с MVC.

    НО. Есть такая штука как коллективное мнение. Например, по правилам русского языка можно писать "парашут", а не "парашют" начиная с какого-то там 2010го года. Это теперь норма. Хз. Короче безграмотных неучей дохрена. И т.к. таких реально дохрена, кто не может отличить одно от другого и не быть неучем, то решили что назовём-ка мы это дело "MVC с пассивными моделями", потому что называть этот подход MVP слишком сложно, это же читать надо ещё, учиться, лучше будем терминами кидаться, подумают что умный.

    Так вот, к чему я веду. Классический MVP в вебе неудобен (что можно увидеть на примерах первого Zend, Phalcon и прочих догматов), по-этому добавили прослойку в виде роутера, который говорит: "По адресу /users при GET запросе отправляйся мне вот в этот класс и выполни вот этот метод", например: "$router->get('/users', 'UserClass', 'action')". Сам метод, возвращает нужную вьюшку с данными и называется "экшен", а класс, который содержит набор этих самых "экшенов" называется "контроллер" или "презентер". Во вьюшке, с помощью читов (шаблонизатора) можно указать, например, какой хедер\футер (лайаут) использовать, какой тайтл и прочее. Таким образом мы получаем разные страницы по разным адресам с разными данными, с возможностью сохранить основное оформление и пересипользовать какие-то другие куски вьюшек.
    Ответ написан
    1 комментарий
  • Как заставить работодателя своевременно отчитываться о причинах отказа в приеме на работу?

    Maksclub
    @Maksclub Куратор тега Карьера в IT
    maksfedorov.ru
    Никто вам ничего не должен, даже если вам очень сильно это не нравится!

    То, что это есть в законе — ерунда (как и запрет указания пола даже для вакансии грузчика)... глупый закон... очень легко его обойти с поводом "а мы еще думаем то есть не отказ это, просто рассматриваем всегда так",...
    или может они вообще не видели ваш отклик (даже если в системе есть метка "просмотрено" — это не может являться доказателсьвом просмотра компетентным человеком или именно той компанией, которая может ответить перед законом, тк не всегда есть приказ об ответственности от гендиректора — грубо говоря без ведома компании сотрудник HR может опубликовать вансию...) крч, не парьте мозг себе на ровном месте, займитесь делом!


    Способы обойти хитрых:
    • внешним HR — типа консультатнт, который присматрвает кандидатов...
    • или приписка — "вакансия не актуальная, но вы можете написать в запас",
    • или приписка "не является офертой",
    • или вообще не давать вакансии, а смотреть по резюме
    • или подставная компания в hh.ru (самый простой способ)
    • или написать бота, который автоматом будет писать письма "счастья"

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

    Если хотите привлечь к ответственности — отправляйте письмо с уведомлением на юрадрес компании!
    Посторонние сервисы (типа hh.ru и прочее — фуфло в плане юридической ответственности)

    upd: Если по АПИ собирать отклики на вакансию на hh.ru, то не отмечается резюме просмотренным
    Ответ написан
    6 комментариев
  • Стоит ли новичку начинать с фреймворка или лучше учиться на чистом php?

    @vodniciarv
    Пиши свои штуки на чистом PHP на процедуральном стиле.
    Потом изучай ООП и начни что-то сделать своё но уже на ООП.
    Потом изучай MVC и уже переходи к фреймворкам.
    Ответ написан
    32 комментария
  • Где можно практиковаться в программирование на С++ и Java?

    ololopishpishrealne
    @ololopishpishrealne
    one|line|mega|pipe|ninja
    https://www.codewars.com/ - тонна мини задачек
    https://www.codetriage.com/ - агрегатор опенсорсных проектов ищущих помощь джунов
    Ответ написан
    Комментировать
  • Symfony, правильный подход?

    На мой взгляд начинать изучение с документации не лучший способ. Да, узнать из чего состоит фреймворк можно, но начать им пользоваться сложно. Лучше изучать его планомерно, на конкретном примере реализации какого то проекта. И лучшее что я знаю по этой теме - https://knpuniversity.com/tracks/symfony Информация подается постепенно и доступно. Да, необходимо небольшое знание языка, но с гугл переводчиком вполне решаемо, да и английский неплохо подтянуть получается. Там есть и видео, и дублирование всего текстом/кодом. Текст доступен всем, видео бесплатно только первый курс из 12 уроков. Если есть желание учить по видео все материалы, а не только первый курс, то лучше оплатить месячный абонемент за 25$ - месяца более чем достаточно, чтобы скачать все курсы, и спокойно узучать/повторять в дальнейшем.

    Сразу предупрежу - если оплатить месячную подписку, то через месяц с карты снова спишут 25$ автоматом. Они не предупреждают об этом... вроде. Так что автопродление подписки нужно отменить сразу, чтобы не забыть сделать это позже.

    Еще советую почитать книжку Best Practices symfony.com/doc/current/best_practices/index.html и установить официальный демо проект Symfony Demo https://github.com/symfony/demo.
    Ответ написан
    1 комментарий
  • Symfony, правильный подход?

    voronkovich
    @voronkovich
    Есть несколько книг (бесплатных):
    1. Practical Symfony
    2. Learn Symfony
    3. A year with Symfony

    Видео-уроки: codereviewvideos.com

    Демо-приложение (там код можно как книгу читать): https://github.com/symfony/demo
    Ответ написан
    Комментировать
  • Как спланировать свое обучение?

    voronkovich
    @voronkovich
    Есть одна волшебная книига: K&R "Язык программирования Си". Всего 200 страниц, но там и стековый калькулятор и аллокатор памяти и программировние для UNIX + множество разных упражнений.
    Прочтите эту книгу в течение этих 3-х недель. Хаскель может и подождать. В качестве упражнений делайте утилиты UNIX (coreutils): kill, nohup, ls и т.д.
    Кстати, я бы добавил в ваш список не хватает:
    1. Кент Бек. "Экстремальное программирование: разработка через тестирование"
    2. Бертран Мейер. "Почувствуй класс" (да, знаю это про Eiffel)
    Ответ написан
    4 комментария
  • Где найти удаленную стажировку для новичка PHP?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Мне 27, влился за полгода
    только дома, стажировок нет, еще меньше чем джуниорской работы, а ее очень не много, все нужен мидл, просто готовы подучить...

    Дома занимайтесь, изучите язык, обязательно ООП, обязательно окружение (Линукс, Композер, ГИТ) + изучайте потихоньку фреймворк (любой из Yii2, Laravel, Symfony)
    Ответ написан
    Комментировать
  • Как научиться учить программирование?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    А просто со временем, до всех доходит, что программирование это не интересные исследования, познания неведомого как в фантастике, прикручивание двумя кликами новых движков.
    А на деле - это еще и множество рутинной и кропотливой работы, которая по сути - скучная, однообразная, И ее процентов 80.

    Вы это наконец поняли. Какую мотивацию вы хотите от нудной и кропотливой работы - неясно. Мотивация может быть в зарплате, в создании своего продукта, если он есть. А так - человек должен уметь мотивировать себя сам, а не ждать пока его рассмешат клоуны.
    Ответ написан
    4 комментария
  • Надежен ли функция mail если отправлять в цикле?

    daager
    @daager
    Функция справится, а вот верно ли у вас настроен сервак(если свой), не забанит ли вас хостер(если не свой) и не попадете ли вы в спам(за массовость).
    Ответ написан
    Комментировать