• Как мигрировать с php 5.4 на php 7?

    Можно использовать Phpstorm, выставить в проекте php7 и запустить проверку проекта. Я так делал при переходе с 5.6 на 7.1.
    Ответ написан
    Комментировать
  • Нормально ли создавать каждому ajax'у свой php файл?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Делают ещё хуже - берут фреймворки, вроде yii2, Laravel, Symfony и у вас куча файлов)
    Ответ написан
    5 комментариев
  • Как организовать роли в Symfony?

    BoShurik
    @BoShurik Куратор тега Symfony
    Symfony developer
    security.yml
    security:
        access_control:
            - { path: ^/ }

    RequestVoter.php
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
    use Symfony\Component\Security\Core\Authorization\Voter\VoterInterface;
    use Symfony\Component\Security\Core\Security;
    
    class RequestVoter implements VoterInterface
    {
        /**
         * @var Security
         */
        private $security;
    
        public function __construct(Security $security)
        {
            $this->security = $security;
        }
    
        /**
         * @inheritDoc
         */
        public function vote(TokenInterface $token, $subject, array $attributes)
        {
            if (!$subject instanceof Request) {
                return self::ACCESS_ABSTAIN;
            }
    
            $route = $subject->attributes->get('_route');
            $routeRole = $this->getRoleByRoute($route);
    
            if ($this->security->isGranted($routeRole)) {
                return self::ACCESS_GRANTED;
            }
    
            return self::ACCESS_DENIED;
        }
    
        protected function getRoleByRoute(string $route): string
        {
            // ...
        }
    }
    Ответ написан
    3 комментария
  • Где лучше искать русскоязычного программиста на разработку мобильного приложения: на Upwork либо на сайтах Фрилансим/fl.ru?

    opium
    @opium
    Просто люблю качественно работать
    Цена на овощи в деревне сильно ниже чем в городе, значит ли это что они намного хуже? Нет это значит только то что они намного лучше и без химии
    Ответ написан
    1 комментарий
  • Бэкэнд разработчик на ноде, вкатывание?

    @spaceatmoon
    Дело вкуса. Я знаю JS, но совершенно не хочу вкатываться в nodejs. Зачем мне нода, когда и php решает те же проблемы?

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

    Боязнь изучения другого языка в вашем случае не оправдана. Попробуйте Python/Java/PHP. Ознакомитесь где вот вам проще искать документацию, приятность синтаксиса, скорость разработки. Где вы решаете проблему из мира живого, а не из мира "Как эта штука работает".

    Я как-то хотел изучить Haskell, долго блуждал, но в итоге сложилось ощущение, что язык решает проблему для себя, а не для меня. Мне банально было неудобно всё в том языке. Даже родной редактор завершался с критической ошибкой...
    Ответ написан
    7 комментариев
  • Какой-то js код выводит alert, но не могу найти?

    Stalker_RED
    @Stalker_RED
    В девтулс пропишите
    window.alert = function() {
        debugger;
    }

    Затем добейтесь срабатывания этого алерта, и у вас будет остановка в том месте, где он был вызыван.
    Ответ написан
    4 комментария
  • Материалы для изучения webpack?

    0xD34F
    @0xD34F
    Ответ написан
    Комментировать
  • Реально в 36-40 лет стать тестировщиком или программистом если есть свободное время?

    @vardoLP
    Ват ю сэй эбаут май мама?!
    Мне почти 40, успешно работаю веб-прогером уже 7 лет! Учился сам. Дерзайте ))
    Ответ написан
    2 комментария
  • Зачем дублируют неймспейс в наименовании класса?

    miraage
    @miraage
    Старый прогер
    А при импорте обоих классов, что будете делать? На то и называют уникальными именами, чтобы можно было сразу отличить один класс от другого. Более того, такая архитектура (App\Repositories, App\Controllers) используется далеко не во всех проектах. Поэтому логично указать как функциональную составляющую (сервис, контроллер), так и доменную (user, app, article).
    Ответ написан
    6 комментариев
  • Есть ли готовая памятка для родных фрилансера?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    К каждому индивиду нужен свой подход. Чаще всего помогает: матом объясняешь, что ты занят и все. Желательно с оскорблениями, что бы второй раз желание слушать не было.
    Как вариант замок на дверь и график рабочий и не отвечать на провокации.
    Ну и если ты человек спокойный и хамить не научен (а я бы освоил обязательно этот скил) можно просто на любой "вынеси мусор", вызывать "мужа на час" или аналоги. Только так доступно можно объяснить, что ты дорого стоишь в рабочее время.
    Когда жил с тещей - поступал так. Просто сидел и рубился в игры, на каждое помоги, помогал. Но не работал. Где-то на 2-й день спросили, что не так, почему не работаю. Сказал, что не смогу тогда по дому помогать А это явно приоритетная задача. Поэтому решил больше не работать, никогда. Вопрос закрылся. При появлениях рецессии достаточно "увольняться?".
    Все родственники считают меня психом, но привыкли. Я же называю это "радикальная психологий". Работа кипит, хозяйство не отвлекает.
    ПС: самое главное в жизни вообще - научиться говорить "нет".
    Ответ написан
    2 комментария
  • Как получить удаленные из коллекции сущности Doctrine?

    @Flying
    Ответы на ваши вопросы, очевидно, кроются в исходниках Doctrine:
    Видно что поведение метода clear() зависит от того какую из сторон ассоциации вы очищаете. Также видно что если вы работаете с owner side ассоциации - то Doctrine создаёт новый snapshot.

    Из кода методов getInsertDiff и getDeleteDiff видно что вычисление разницы происходит через сравнение snapshot'а с текущим содержимым коллекци, так что очевидно что в случае создания нового snapshot'а разница будет пустым массивом.

    Проверить, вызывает ли сама Symfony метод clear() проще всего, поставив там точку останова.
    Ответ написан
    3 комментария
  • Сделать один массив из двух вложенных на PHP?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    $newArray = array_merge(...$array);
    Ответ написан
    Комментировать
  • Linux дистрибутив для предприятия?

    Sanes
    @Sanes
    Для 150 пользователей нужет отдел IT, который не задает такие вопросы.
    Ответ написан
    Комментировать
  • Regex выбрать только контент внтури html тегов?

    Moskus
    @Moskus
    Использовать DOM, Xpath. Забыть про regex для разбора XML/HTML.
    Ответ написан
    Комментировать
  • Как правильно создать связь между сущностями и форму для этой связи?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Никак.
    Третью таблицу Доктрина сделает за тебя сама.

    И, да - "плодить" придется. Со временем ты поймешь, какое это счастье, когда все связи явно прописаны в сущности, и не надо метаться бешеной собакой по коду, чтобы отыскать, как у тебя сущности относятся друг к другу.
    Ответ написан
    Комментировать
  • Строгая типизация возвращаемых значений функцией?

    @stratosmi
    Это холивар на тему "языки со статической типизацией vs языки с динамической типизацией"
    Каждая сторона может привести кучу значимых аргументов в свою пользу.

    Если проект очень сложный/очень ответственный - все должно быть строго, иначе нахлебаетесь.
    Для простых - лучше гибче, без лишней строгости. Разработка будет быстрее, дешевле.
    Ответ написан
    Комментировать
  • Сложно ли переписать сайт с Yii на Yii2?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    В большей степени это зависит от того как сделан Ваш сайт. То что это не 2 строчки кода - это точно. А вот стоит ли делать с нуля, это надо Ваш код смотреть. Кстати относительно скоро выйдет yii3. Может есть смысл подождать, хотя 2 и 3 версия не настолько будут различаться, как 2-я и 1-я.
    Но главный вопрос - а зачем Вам это? Он дорабатывается и Вы уперлись в нерешаемую проблему? Вопрос снижения нагрузки? Есть адекватная причина?
    чтобы соответствовать современным стандартам

    это как-то странно, разве что только если вы его продаете как cms. Просто в ином случае пользователь видит front, он понятия не имеет yii у Вас там или нет и какой версии.
    Ответ написан
  • Что нужно иметь и знать в фреймворке React джуну?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Хороший кандидат на должность Junior React Developer, по моему мнению, должен соответствовать следующему перечню требований:
    1. Хорошее знание JavaScript. В React разработке используется ES6 и большинство экспериментальных фич еще не вошедших в стандарт.
    2. Хорошее знание HTML и CSS. Кроссбраузерная верстка. Так же, хорошо иметь представление о том, что такое css-in-js.
    3. Web APIs. Умение работать с объектной моделью документа(DOM) и все эти XMLHttpRequest, localstorage, cookie, history и прочее.
    4. Хорошее знание API React. Вы должны хорошо знать React, знать его возможности, понимать основные концепции и уметь ответить на большинство типовых вопросов. Для этого достаточно хорошо изучить документацию, разобрать пару типовых проектов на github и попрактиковаться. Много полезной информации, приёмов и идей можно подчерпнуть из тематических статей и докладов. Так же, на просторах интернета можно найти подборки типовых вопросов, часто задаваемых на собеседованиях. В англоязычном сегменте их больше.
    5. Redux. Уверенное знание API. API библиотеки до боли пост. Знать, что такое промежуточное ПО и зачем оно. Понимать базовые концепции архитектуры Flux. Все это есть в документации и многочисленных курсах.
    6. Умение работать с менеджером пакетов npm на базовом уровне.
    7. Node.js. Хотя бы уметь написать простейший express/koa сервер, который будет отдавать ваше приложение и статику.
    8. Webpack. Базовые знания.
    9. Умение работать с git. Хотя бы знать и уметь примерять команды: init, clone, add, commit, push, pull, merge, checkout.
    10. Иммутабельность. Четкое понимание зачем это надо. Знание приемов иммутабельного изменения структур данных. Это есть в официальном туториале React.
    11. Статическая типизация TypeScrpt/Flow. Для начала хватит самых основ и способности понимать чужой код.
    12. Функциональное программирование. Хватит знаний полученных в процессе изучения JavaScript, а так же не помешает знать, что такое каррирование, чистые функции и рекурсия.
    13. Базовые концепции ООП. Хватит знаний полученных в рамках изучения JavaScript.
    14. Асинхронный код. Понимать как его правильно организовывать. Promise, async/await.
    15. Сетевые протоколы передачи данных. Вполне хватит базовых знаний о http/https, о том, что такое заголовки и какие они бывают. Хорошо знать о том, что такое websocket.
    16. За плечами должен быть хотя бы один учебный проект на React. Хватит типового тестового задания.
    Примеры таких заданий: 1, 2, 3(сайт может быть не доступен на территории РФ, советую отрыть через VPN и посмотреть), 4, 5. Если подобного проекта у вас нет, то будьте готовы, что потенциальный работодатель предложит вам выполнить тестовое задание и только по его результату вас, может быть, пригласят на техническое интервью. Если напишите хорошо, вас скорей всего пригласят.
    17. Желателен опыт создания типовых UI элементов. Например, чтобы не вызывало трудностей написать простой кастомный чекбокс. Куча примеров реализаций типовых элементов есть на codepen.

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

    Похожий вопрос.
    Ответ написан
    18 комментариев
  • Как организовано хранение статей сайта в бд?

    @Ambrosian
    Arbitr,
    А если в статье много картинок, при этом они идут по ходу текста, а не одна за другой, как тогда быть? Хранить тег Img прямо в тексте статьи?
    почему нет?
    причем, не обязательно прямо-таки именно чистый тег <IMG>.
    а вполне можно хранить специальным тегом типа ![GitHub Logo](/images/logo.png) причем со ссылкой просто на идентификатор картинки, а конкретные пути к файлу будут подставляться при формировании страницы для посетителя.
    это был пример из Markdown

    Все зависит от задач


    Если текст более никак не будет изменяться, то чего мудрить-то? проще (производительнее) будет хранить сразу конечный тег в тексте.

    Если же предполагается редактирование и какой-то там Визивиг, то удобнее будет хранить специальным образом.

    Почему теги нельзя хранить в текстах - это другая причина. Нельзя хранить произвольные теги в текстах. А жестко ограниченный набор тегов (например IMG, STRONG и т.п.) с запрещенными стилями - отчего нет?

    Arbitr,
    Когда искал вопрос, на форумах писали, что избыточное хранение тегов это не оч хорошо.


    Речь о том, что теги могут влиять на форматирование.
    Но если набор тегов ограниченный и они проходят контроль и очистку перед помещением в БД, то - можно.

    P.S.:
    Строго говоря, хранить имеет смысл не чистые теги HTML, а намеки на них. Например, текст:

    Это некий текст. А вот тут картинка #img#id0234#

    По сути это тоже тег. Но вы его преобразуете в <IMG> по определенным правилам. Сегодня у вас картинка лежит в http://example.com/images/id0234.jpeg, а завтра вы решили поместить картинки на отдельный сервер в облако и адрес будет https://images.example.com/id0234.jpeg
    Ответ написан
    Комментировать
  • Почему падает ошибка при установке демо-версии симфони 4?

    @PapaStifflera
    Родился, вырос...
    pdo_sqlite это модуль PHP, а не фрейворка. Устанавливается в зависимости ои того, какая у вас система.
    В debian-подобных дистрибутивах линукса через apt-get install pdo_sqlite.
    Ответ написан
    Комментировать