• Как правильно возвращать ошибки в своем API, Laravel?

    могу вручную делать return в каждом методе своего API, но это не выглядит правильным

    Почему? Это нормальная практика. Каждый метод - это часть контроллера, а контроллер должен возвращать ответ. Ответ в Laravel должен быть инстансом Response (массив автоматически конвертируется в него).

    если структура изменится, мне придется менять весь свой код

    Для таких случаев Лара предоставляет возможность создать свой собственный тип ответа, например, ApiResponse. Соответственно, после создания будете вызывать в коде как-то так:
    return response()->api($code, $data);
    Все форматирование будете делать в классе ApiResponse.

    Собственно, чтобы создать, регистрируете в сервис-провайдере новый тип response.
    Response::macro('api', function ($code, $data) {
        return new ApiResponse($code, $data);
    });
    Ответ написан
    3 комментария
  • Как защитить идею?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Сама по себе идея не стоит ничего. Некоторые известные бизнесмены даже утверждают, что стоимость идей отрицательна. Защитить идею можно только одним надёжным способом - реализовав её на столько хорошо, что никто в мире не сможет лучше.
    Ответ написан
    Комментировать
  • Как можно шифровать данные в базе данных MySQL?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Шифровать данные смысла нет. По шифрованным данным не будет нормально работать индексация. К тому же, если кто-то сольёт всю базу, то, скорее всего, он получит и ваши скрипты, которые шифруют/дешифруют данные при работе.
    Ответ написан
    7 комментариев
  • Стоит ли учится писать unit тесты сейчас, если да, то стоит ли использовать библиотеки для тестирования?

    27cm
    @27cm
    TODO: Написать статус
    Стоит ли писать тесты, используя библиотеки?
    Да

    Стоит ли использовать библиотеку или все таки PHPUnit лучше?
    PHPUnit или Codeception
    Ответ написан
    5 комментариев
  • Как хранить подписи объектов в Laravel?

    @Kostik_1993
    Web Developer
    Я бы не советовал так извращаться. У меня на сайте есть вывод городов, и когда мне нужно вывести название города в определенном падеже я использую библиотеку morphos

    Для примера чтобы вывести название в предложном падеже я написал в модели метод
    public function getNameRpAttribute()
    	{
    		// Имя в предложном падеже
    		return \morphos\Russian\GeographicalNamesInflection::getCase($this->attributes['name_ru'], 'предложный');
    	}

    С данной библиотекой вы сможете сделать многие вещи касаемые склонений слов и будет вам счастье и счастье человеку которому нужно будет потом редактировать контент
    Ответ написан
    1 комментарий
  • C# vs Java для удалённой работы за рубежом. Что востребовано?

    sim3x
    @sim3x
    tl;rd учить нужно то что не вызывает отвращения
    На зп на других ЯП нужно ориентироваться, когда у вас будет за плечами 1-5 лет разработки
    И понимание, что программинг - ремесло и в редких случаях важен инструмент

    Сразу нормальных денег не будет

    В этом году я решил, что программирование может помочь мне заработать деньги
    не поможет. Для того чтоб помогло нужно 1-5 лет вкалывать

    Сравните стоимость труда PHP и Python программиста за рубежом, и поймете, о чем речь.
    сравнивали. Мидл - в обоих стеках получает одинаково

    Существовали задачи, которые я не мог решить на Python. Например клиент-серверные приложения, игры. Не хватает производительности.
    варгеймингу хватает, а вам нет. Ок

    Java №1 в мире
    первое правильное утверждение

    Из чего следует, что C# развивается, и кросс-платформенность тоже развивается.
    ну да

    По сравнению с Java у C# выше производительность,
    ну да

    У меня знакомый информатик крутил JVM, говорит, что как-то вроде можно, но непонятно как. А в C# говорят, что можно в некоторых областях программы сделать неуправляемый код и контролировать память.
    сын маминой подруги btw умеет гуглить

    В C# комфортнее работать. Более того, он меньше по объему, чем Java.
    очень важный параметр

    Наши Украинцы тоже считают, что Java №1, но при этом, востребованность выше у C#, чем у Java.

    Колличество вакансий для Украины (от джуна до синьора)
    Java 306
    .NET 315
    Ответ написан
    4 комментария
  • Как повысить скорость разработки?

    Olek1
    @Olek1
    Отключите всё что отвлекает: уведомления, звуки, мессенджеры, скройте панель задач, телефон переведите в беззвучный режим, закройте окно с посторонним шумом на улице; Работайте только над одной задачей.
    Ответ написан
    Комментировать
  • Как называется такой тип API и удобно ли использовать при его разработке Laravel?

    Tesla
    @Tesla
    Есть неплохой ресурс для понимания REST www.restapitutorial.ru
    Ответ написан
    Комментировать
  • Обьясните зачем конкретно нужны Redis и Memcached и можно ли их связать с технологиями как nodejs?

    Staltec
    @Staltec
    Node.js разработчик
    Redis это memcached на стероидах. Он пригоден не только для кеша, но и для хранения любых состояний приложения (сессий, индексы, и т.п). В Redis всё это сохраняется на диск. После появления Redis`а, использовать memcached практически не имеет смысла.
    Ответ написан
    Комментировать
  • Как называется такой тип API и удобно ли использовать при его разработке Laravel?

    @EvgeniiR
    https://github.com/EvgeniiR
    1. Апи ВК не rest
    2. Rest это то что описано в диссертации Роя Филдинга и в его докладах, блоге. Остальное от лукавого(и от школьников)
    3. REST это четкие архитектурные ограничения нужные для того чтобы обеспечить максимальную scalability, и успешно обеспечили, веб разросся до нереальных масштабов. браузер вполне себе rest клиент
    4. Реализовывать свой rest клиент это какой-то особый вид извращения, точно так же как и пытаться через rest организовать работу spa/mobile apps, и практически никто из тех кто называет свое апи rest этого не делает
    5. Если вы залезли сюда, вам не нужен rest, вам хватит rpc
    Ответ написан
    8 комментариев
  • Где удобно хранить куски кода?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Ответ написан
    Комментировать
  • Для чего программисту математика?

    Mrrl
    @Mrrl
    Заводчик кардиганов
    Если не будете изучать математику - она и не пригодится. Если будете - пригодится много где, от анализа ДНК и расчёта газовых турбин до компьютерного зрения и игры на бирже. В любом случае будете брать задачи по своим силам.
    И если с математикой в вузе проблем не было, то повторять её специально, "чтоб было", незачем. Вы её уже знаете. И когда решите, что какая-то тема нужна для конкретной задачи, спокойно повторите именно её. Если эта тема встретится несколько раз, то и повторять её будет не надо - она уже будет в голове.
    Ответ написан
    Комментировать
  • Как защитить обработчик событий Callback API vk от подмены?

    userfordownload
    @userfordownload
    Ты чутка не в теме по ssl)
    в 2 словах:
    Ты даешь вк свой сертификат (Рисунок 1).
    d776f4574f1b4526b8b13b47886f2ebd.jpg
    И на сервер бота тоже прикрепляешь сертификат (ОНИ УНИКАЛЬНЫ, невозможно создать 2 "одинаковых" сертификата).

    При запросе они сравниваются и воля - подмена НЕВОЗМОЖНА,

    Это все очень условно и грубо))))
    Ответ написан
    Комментировать
  • Где найти виды хакерских атак на сайт с примерами?

    @artemt
    Full-stack developer
    На stepic.org есть курс "Анализ безопасности веб-проектов"
    Ответ написан
    Комментировать
  • Как защитить обработчик событий Callback API vk от подмены?

    sergiks
    @sergiks Куратор тега PHP
    ♬♬
    ВК добавили параметр «Секретный ключ» в настройки Callback API для групп:

    Произвольная строка до 50 символов, может включать латинские буквы и цифры.

    Заданный Вами секретный ключ будет передаваться с каждым уведомлением от сервера в отдельном поле secret. Это позволит Вам достоверно определять, что уведомление пришло именно от нашего сервера. Чтобы исключить возможность подделки запросов, пожалуйста, не публикуйте значение секретного ключа в открытом доступе.


    Скрин
    b76c58aec44c4bbfa8de1d1bab88c762.png
    Ответ написан
    1 комментарий
  • Как получить access_token в Dropbox?

    rdifb0
    @rdifb0
    Программист, реалист
    Судя по документации примерно так (если без cURL):

    $context = stream_context_create(array('http' => array(
        'method'  => 'POST',
        'header'  => "Content-Type: application/x-www-form-urlencoded\r\n".
          "Authorization: Basic ".base64_encode("<app key>:<app secret>")."\r\n",
        'content' => http_build_query(array(
        	'code' => <authorization code>,
        	'grant_type' => 'authorization_code',
        	'redirect_uri' => <redirect URI>,
        )),
      )));
                           
    $url = 'https://api.dropbox.com/1/oauth2/token';
    $result = file_get_contents($url, false, $context);
    $result_json = json_decode($result);
    
    echo $result_json->access_token;


    SDK у них хорошо расписано, бери да пользуйся.
    Ответ написан
    1 комментарий
  • Какие средства можно использовать на php для редактирования изображений?

    DaFive
    @DaFive
    php.net/manual/ru/book.imagick.php
    Да и GD подойдет для ваших потребностей. И текст, и координаты, и прозрачность - всё есть.
    Ответ написан
    Комментировать
  • Какие средства можно использовать на php для редактирования изображений?

    @artem78
    1) GD - встроенный
    2) ImageMagick - побогаче возможности
    Ответ написан
    Комментировать
  • Как вы организуете свою работу?

    paulradzkov
    @paulradzkov
    Дизайнер, верстальщик, начальник отдела UI
    Про GitHub.

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

    2) Создал себе на Гитхабе две дополнительные организации внутри своего аккаунта.
    - «paulradzkov-forks» — для форков чужих проектов.
    - «paulradzkov-heaven» — кладбище для старых проектов, куда перемещаются все неактуальные проекты.
    Эти две дополнительные организации позволяют очистить основной аккаунт от мусора. В нем теперь только несколько актуальных проектов, в которых легко ориентироваться.

    3) Перемещаю все старые проекты из Дропбокса на Гитхаб в «paulradzkov-heaven». Проектов много, это долго, но освободилось уже несколько гигов (т.к. там кроме кода psd-исходники, архивы с инсталляторами и прочее). Место в облаках заканчивается, а на Гитхабе — резиновое.
    Это кладбище уже пригодилось, когда у меня попросили поискать исходники проекта, над которым я работал 3 или 4 года назад, а я через минуту ответил им ссылкой на нужный репозиторий. Не пришлось никуда лезть, распаковывать, искать, запаковывать, отправлять почтой или закачивать в облако.
    Повторюсь, что на Гитхабе классный поиск по исходникам: если нужно посмотреть, как что-то сделал в старом проекте, но не помнишь в каком — можно довольно быстро найти искомое без возни с архивами.

    Итого.
    Код должен лежать на Гитхабе.
    В том числе старые проекты.
    Используйте организации, чтобы рассортировать проекты, если их много.
    Порядок там, где у каждой вещи есть своё место. Придумайте себе правила порядка заранее и соблюдайте их, чтобы не тратить время на ликвидацию беспорядка.
    Ответ написан
    10 комментариев