• Как правильно установить и настроить LAMP на Ubuntu 17.04?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    А чем вам статья с OD не нравится ?
    https://www.digitalocean.com/community/tutorials/l...
    Ответ написан
    4 комментария
  • Зачем добавлять isset?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Совет на всю жизнь:
    Когда у вас возникает вопрос по функциям / конструкциям в PHP (и др.), сначала стоит посмотреть мануал.
    Если уж совсем не понятно будет, тогда спрашивайте.

    Переходим на ru.php.net/manual/ru
    0788aeb9ce0041f7ad013514fe252b68.png
    Ответ написан
    2 комментария
  • Конвертеры и т.п. преобразователи данных выносить в хелперы?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Делаете отдельные полноценные объекты.
    Интерфейс, абстракция, класс.
    Далее используете как свойство конструктора или при помощи др. механизма.
    Но да, все эти вещи должны быть независимы от вашего проекта.
    Можно делать как отдельные приложения и через композер устанавливать в приложение.
    Ответ написан
    3 комментария
  • Кто писал свою CMS?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Сразу оговорюсь - если что то пишется то фронт отдельно бег отдельно, общение по API.
    Если все вместе, то такое дерьмо даже близко не возьму в руки.

    1) Писали с нуля под нужды бизнеса, букинг направления.
    2) Установка из докера одной командой, инсталлер это 90е начало нулевых
    3) Готовые пакеты для angular2 + свои доработки
    4) hotelbook.ru и др.
    5) Вы опять смотрите в торону дерьмовых топовых систем. Нет конечно. Есть архитектурные решение в частности DDD
    6) Как я уже сказал, фронт отдельным проектом (можно шкуры менять как хочется), бек отдельно. Для реализации сообщений и др. вещей, где шаблон в PHP необходим (а это редкость), используется twig.

    Ссылка на репу вам толку не даст, системы закрыты от чужих глаз.

    P.S.
    Вы не верно задали вопрос.
    Стоило уточнить - Писали ли вы OpenSource CMS и др. системы для общего пользования.

    Вопрос вам kot-samolet: Для чего вы интересуетесь данными вопросами ?
    Если хотите для себя реализовать CMS, то это пустая трата сил и времени.
    Лучше зайти немного с другой стороны.
    Ответ написан
    6 комментариев
  • Обязательно ли для работы с сокетами привлекать Node.js?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Можно на PHP, при помощи того же Ratchet.
    Есть желание, можно и на ноде а еще лучше Go.
    Я делал на всех вариантах, разницы особой не заметил, при 20к обращений в минуту.
    При больших нагрузках, пых конечно сдает и памят садиться.
    Ответ написан
    2 комментария
  • Как избавиться от аудиорекламы на компьютере?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Если ставили какие либо дополнения для браузера, вполне могут они быть.
    Отключите все расширения и проверьте, будет ли повторяться данная реклама.
    Ответ написан
    1 комментарий
  • Как сделать input только цифры?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    <input type="number" onkeypress='return event.charCode >= 48 && event.charCode <= 57'>
    </input>
    Ответ написан
    Комментировать
  • Как реализовать rest api на фреймворке slim?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Авторизация при помощи jwt
    https://github.com/tuupola/slim-jwt-auth

    Простой скелет. А вообще в сети куча примеров и статей по Slim RESTful API
    https://github.com/tuupola/slim-api-skeleton

    Ну и swagger для работы.
    Ответ написан
    Комментировать
  • Как решить проблему PHP варнингов которые ломают компоненты vue.js?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Ну так в ошибке все сказано.
    <p>Severity: Notice</p>
      <p>Message:  Undefined index: email</p>
      <p>Filename: controllers/Login.php</p>
      <p>Line Number: 11</p>


    Если совсем худо с английским, то можно воспользоваться переводчиком.
    Поправьте код или все же пересылайте email.
    И кто в готовом продукте использует $_POST?
    В документации вы же не видели $_POST, так зачем выдумывать?

    Есть документации, есть куча ответов в сети.

    P.S.
    Сначала учим php, js а затем используем фреймворки vue / codeigniter etc...
    В ошибке все четко указанно, что не так.1ebd656604e642ae83bc5bc3bbdb3ce2.png
    Ответ написан
    2 комментария
  • Как разрабатывать на маке в дома?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    1) Не использовать MAMP, как тут посоветовали.
    2) Поставить brew
    3) При помощи brew установить все что вам надо (у меня это nginx, php71, pgsql, mariadb, redis, memcache)
    4) Отключить php56
    ...
    Собственно разработка такая же как и в linux.

    Ну а далее используйте git.
    Разрабатываете локально, делаете коммит и отправляете на (github, bitbucket etc...) в свою ветку (или ветку таска).
    Далее создаете pull request и сливаете в мастер.
    Настраиваем сервер, что бы он автоматом или по вашему желанию забирал изменения с git и применял их на сервере.
    Ответ написан
    Комментировать
  • Как научиться разбираться в коде CMS?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Вам надо изучить ядро и архитектуру CMS. Понять как и что работает. Изучать построчно с применением необходимых инструментов.
    Если вы вдруг поняли как оно работает, у меня для вас новость: вы больше не будете пользоваться CMS.
    Так как вы поймете ужас реализации многолетней клоаки кода.
    Скорее всего вы найдете подходящий для себя фереймфорк и станете работать с ним.
    Ответ написан
  • Какие руководства по созданию тем на WP вы знаете?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Ну для начала надо научиться пользоваться поиском в интернете.
    Ищем на youtube - wordpress создание темы с нуля (и подобное) - выводим видео за последний год.
    Находим сразу же ответ.
    Вот к примеру плейлист из 21 урока по созданию тем...
    Ответ написан
    Комментировать
  • Как реализовать авторизацию в Rest?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    JWT и не надо изобретать велосипедов. (под все фреймворки имеются пакеты)
    Получаете токен и используете его. В токене могут быть права, экперинс и т.д.
    Ответ написан
    5 комментариев
  • PHP фреймворки новые с Crud и возможностью создания модуля?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    (контроллер модель и view в одном пакете)

    Наверняка для любого популярного есть данная бесполезная вещь, просто надо посмотреть бандлы/пакеты в репозиториях.
    Данный механизм подходит исключительно для самого простого сайтика.
    Правильная работы - выбрать (на данный момент) Symfony/Laravel и понять как делаются качественные проекты на них.

    Для больших HL++ я бы посоветовал Symfony, по началу вы заметите, что он работает намного медленнее Laravel etc. Но при готовой архитектуре проекта, заметите что скорость сравняется и даже больше.
    Вся суть в использовании правильной и действенной архитектуры (не как в доке и туториалах).
    Если использовать подход DDD (CQRS/CommanBus/Persister etc..), то система будет оч. гибкой, что оч. важно бизнесу. Так же вся разработка будет в PHP коде в виде объектов. (за редким исключением, где потребуются билдеры) Можно еще оч. долго об этом говорить и расписывать.

    Все то же касается и Laravel/Yii, но с исключениями. Данные фреймворки придется не слабо расширять и учить работать с ORM.

    Если вам интересуют формы для запросов, то тут на помощь приходит swagger. Остальное ручками.
    Все выше сказанное - это если вас интересует качественный и хороший проект.

    UPD.
    Забыл упомянуть минус. Это то что придется писать много кода ручками. Но в последствии это окупится в крупных проектах.
    Так же, выше предложенная схема, дает возможность покрывать тестами 90% кода.
    Ответ написан
    4 комментария
  • Как поставить метки в google map из массива БД?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Вы получаете данные из БД и вставляете их в API google maps.
    Что же вы все ленитесь почитать документацию к тому с чем собираетесь работать.
    https://developers.google.com/maps/documentation/j...

    Самый простой способ, иметь массив с координатами
    // Multiple Markers
        var markers = [
            ['London Eye, London', 51.503454,-0.119562],
            ['Palace of Westminster, London', 51.499633,-0.124755]
        ];


    и дальше в цикле при инициализации все это дело вставлять
    for( i = 0; i < markers.length; i++ ) {
    // ...
            var position = new google.maps.LatLng(markers[i][1], markers[i][2]);
            marker = new google.maps.Marker({
                position: position,
                map: map,
                title: markers[i][0]
            });
    // ...


    В гугле сотни примеров.

    P.S.
    Вот вы устроились работать поваром.
    Вам приходит заказ на картофель фри. Вы берете грязный целый картофель и подаете. И вам кажется что это нормально. Но ведь сначала надо прочитать что делать с картофелем, затем прочитать как его нарезать и как готовить.
    Ответ написан
  • Laravel 5.4 jwt RESTful API и базовый сайт?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Создайте директорию API/...
    В ней разместите контроллеры и т.д., все что вам потребуется для реализации RESTful.
    Там же создаете AuthController, маппите роутинг на него в routers/api.php
    Ответ написан
    Комментировать
  • За сколько реально освоить Yii?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    Предположим вы опытный разработчик который знает какой то фреймворк (к примеру как я Symfony) на 90%.
    Участвует в жизни фреймворка и т.д.
    То неделя-две. Для менее опытного человека, сроки могут возрасти в хРаз.
    Я говорю не о том изучении, при помощи которого вы можете делать все по доке и обычные сайтики а о углубленном. Когда вы будете понимать большую часть архитектуры и самого кода фреймворка.

    Но это на будущее.

    Если вас интересует - за сколько можно научиться клепать сайтики на Х фреймворке - ответ: день - два.
    При условии что вы понимаете ООП.
    Ответ написан
    Комментировать
  • Правильно ли я понимаю суть загрузки изображений к товарам?

    sayber
    @sayber
    Да, я программирую на PHP и еще асинхронно!
    На тему API

    dkrylov:
    У вас будут методы POST (создание товара), GET (получение), PUT (обновление данных товара).
    И вот при PUT вы не сможете послать файл, т.к. в канонах и http, файлы идут только через POST.
    Для работы по API, делается отдельный метод для загрузки изображения.

    Допустим путь по работе с товаром: /api/v1/goods (ну и соответствующие post, get..)
    Для загрузки изображения, вам потребуется что то типа PUT: /api/v1/goods/upload...

    Что бы это работало, сначала создается позиция товара в сущности goods, затем загружается изображение и записываем в goods_photo.
    ID из goods_photo пишем в соответствующие поле сущности goods (goods_photo_id)

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

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    Если вам не помогло исключение в PHP (что бывает в больших ООП проектах), то воспользоваться xdebug.
    Не забываем пользоваться IDE (PHPStorm) или грамотно настроенным редактором кода, который будет отображать ваши косяки.
    Есть еще куча полезных инструментов, но о них позже.
    Ответ написан
    Комментировать
  • Почему не работает регулярное выражение?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    А должно?
    Вот вам на будущее www.phpliveregex.com , https://regex101.com
    Проверяйте и тестируйте, затем вносите в код.
    Ответ написан
    Комментировать