• Как использовать собственные константы?

    @pantagruel964
    php artisan config:clear?
    Ответ написан
    Комментировать
  • Как правильно переименовывать, удалять созданные контроллеры, модели, реквесты?

    zorca
    @zorca
    Запомните команду: composer dump-autoload, она решит 90% ваших проблем с перемещением и переименованием, остальные 10% решит корректировка неймспейсов изменяемых классов.
    Ответ написан
    1 комментарий
  • Как правильно подключить и использовать локализации при использовании nwidart/laravel-modules?

    С пакетом не знаком, но думаю стандартный метод подключения языков в сервис провайдере должен работать doc
    $this->loadTranslationsFrom(__DIR__.'/path/to/translations', 'courier');
    Ответ написан
    Комментировать
  • Как перенести бизнес логику из контроллера?

    @hakkol
    Все тело метода store переносите в тело метода save (следуя вашему примеру) в PostService, а в методе store пишите:
    $this->postService->save($request);
    Ну и в PostController пишите
    protected $postService;
    
    public function __construct(PostService $postService) {
        $this->postService = $postService;
    }
    Ответ написан
    4 комментария
  • Как исправить приложение React из за переключения jsx в phpStorm?

    @tyzberd
    что бы не подчеркивало иногда меняю тут, клик правой кнопкой joxi.ru/823jJg8uJdEajm потом joxi.ru/MAjMNReu4qV1e2
    а по поводу jsx нажмите Ctrl+Alt+S и поищите javascript joxi.ru/823jJg8uJdEzjm. Это то что вы переключили, даже проверил у себя.
    Ответ написан
    2 комментария
  • Как настроить вывод ошибок после валидации в Laravel?

    @kulerezzz Автор вопроса
    После суточного танца с бубнами и вызова пяти экстрасенсов, решением вопроса оказалось проставление в каждом теге input атрибута id, значение которого и берется для составления объекта $errors
    Пример:
    <input class="form-control" type="text" name="email" value="{{ old('email') }}" id="email">

    Также все-таки необходимо убрать подгрузку \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class в protected $middleware.
    1397759758_747400265.jpg
    Ответ написан
    2 комментария
  • Как реализовать единый интерфейс для получения объектов?

    @khrisanfov
    Программист
    Паттерн Abstract Factory https://ru.wikipedia.org/wiki/%D0%90%D0%B1%D1%81%D... оно ?
    Ответ написан
    Комментировать
  • Насколько у меня правильный код ООП php?

    @D3lphi
    Здесь плохо всё, к сожалению.

    Начнем с того, что вы неверно наследуете классы. Почему у вас класс, отвечающий за подключение к базе данных является родителем класса, работающим с заказами? Наследование применяется, если можно сказать, что что-то является чем-то. Например, разработчик является работником; компьютер является устройством и тд. Здесь же у вас вообще близко такой логике не получится следовать. Вы должны передавать хотя бы объект для работы с бд через инъекцию, например, в конструктор. В идеале, нужно использовать паттерн репозиторий для работы с базой данных.

    Класс SearchOrder у вас не только выполняет запросы, но еще и работает с данными, хранит состояние этих самых данных, фильтрует данные (strip_tags()). Непорядок. Это все нужно разделять. У вас вообще получаются какие-то богообъекты, которые умеют во все.

    Вы каждый раз повторяете строки с подготовкой запроса, биндингом параметров, отправкой запроса и тд. Не думали, что неплохо бы было написать какую-нибудь обертку и выполнять запросы как-нибудь так:
    $result = $wrapper->select("SELECT * FROM `tablename` WHERE `id` = :id", ['id' => 5]);

    ?

    Вы вызываете connect() в методах. То есть, каждый вызов этого метода будет приводить к установке нового соединения с базой данных, даже если оно уже было установлено. Соединение с базой данных это достаточно дорогостоящая операция.

    Зачем вы используете свойства, если можно обойтись обычными локальными переменными:
    $this->orderID = (int) strip_tags($orderID);
    $this->column = (string) strip_tags($column);
    $this->value = (string) strip_tags($value);

    ?

    Почему вы стриппите тэги у идентификатора? вы настолько не уверены в том, что влетает в функцию:
    strip_tags($orderID);
    ?

    Если вы не используете php 7 и, как следствие, скалярный тайпхинтинг, то должны делать проверки на тип входящего аргумента. Если что-то не так с типом, бросаем исключение (А не приводим его к нужному)! Например:
    if (!is_string($arg)) {
        throw new InvalidArgumentTypeException('string', $arg);
    }

    Это в идеале. Вы не обязаны это делать, конечно же. Но вот такие проверки делают приложение безопаснее. Хотя, опять же, повторюсь, в 2017 нужно начинать новые проекты на php 7.1+.

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

    Кроме всего прочего, почитайте про стандарты оформления кода. Вы им не следуете.

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

    Желаю успехов!
    Ответ написан
    1 комментарий
  • Почему не видно переменную вне условия if?

    BuriK666
    @BuriK666
    Компьютерный псих
    $a=='1';
    $b== '2';

    $a = '1';
    $b = '2';
    Ответ написан
    Комментировать
  • Почему не видно переменную вне условия if?

    $a=='1';
    $b== '2';
    
    if($a=='1') {
        if ($b== '2') {
            $c = file_get_contents('https://');
            $c = json_decode($c);
    
            $d = $c ->word;
        } 
    }
    echo $d;

    59ce5c2c93813850050109.jpeg
    $a = 1;
    $b = 2;
    
    if($a == 1 and $b == 2)
    {
            $c = file_get_contents('https://');
            $c = json_decode($c);
    
            $d = $c ->word;
    }
    echo $d;


    При условии, что $a равно 1 и $b равно 2
    Ответ написан
    Комментировать
  • Почему не видно переменную вне условия if?

    @imhuman
    $a=='1';
    $b=='2';

    Тут ерунда.

    И еще она создается только При условии, что $a равно 1 и $b равно 2, задайте дефолтное значение до условий, например.
    Ответ написан
    Комментировать
  • Почему не срабатывает click в браузерах Chrome, Opera?

    megafax
    @megafax
    web-программист
    Используйте не on('click') для option, а on('change') для select. Это более правильный вариант. Если же надо все таки on('click') - вешайте событие на select и смотрите какой event.target
    Ответ написан
    Комментировать
  • Должен ли выполняться этот код в php?

    Stalker_RED
    @Stalker_RED
    Если вы про <script>alert(...)</script>, то при запросе через ajax не должен.
    Запись в файл должна, если конечно раньше фатальные ошибки не случились.
    Проверяйте что у вас в error.log

    P.S.: Скриншоты с кодом, вы издеваетесь?
    Ответ написан
    1 комментарий
  • Как передать через ajax значение нескольких чекбоксов?

    AlexPTS
    @AlexPTS
    Full stack веб разработчик
    Укажи имена input поля вида name='checkbox[]'. Тогда оба поля будут отправлены на сервер в виде массива.
    <input type='checkbox' name='item[first]' />
    <input type='checkbox' name='item[second]' />
    Ответ написан
    2 комментария
  • Как правильно отправить значение input?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    JS
    $('.remove').click(function (e) {
                var id = $(this).data(id).id;
                    $.ajax({
                        type: "POST",
                        url: "/remove.php",
                        data: {'id':id},
    ...

    PHP
    $id = $_POST['id'] ;
    HTML
    <button class="btn btn-info glyphicon glyphicon-remove-sign remove" data-id="<?=$v['id'];?>">
    </button>


    Пишу по памяти, возможно где-то мелкие огрехи.
    Ответ написан
    4 комментария
  • Почему не срабатывает success в ajax запросе?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    По какой-такой причине стало модным не писать error?
    Спрашиваю каждого, кто не пишет обработчик ошибок — вы уверены, что в мире царит порядок и справедливость, гармония заразила IT и избавила мир от таких понятий, как валидность, ответ 4хх и 5хх и прочих нудных и никому не нужных вещей?
    Ответ написан
    20 комментариев
  • Вывод данных из массива в режиме реального времени?

    JRK_DV
    @JRK_DV
    Рецепты https://codepen.io/jrkdv/full/LKLXdq
    Для фулл реалтайма используйте веб-сокеты
    Ответ написан
    1 комментарий
  • Вывод данных из массива в режиме реального времени?

    AlexMaxTM
    @AlexMaxTM
    Это можно и нужно делать именно ajax, чтобы не перегружать всю страницу. Нагрузка на сервер будет меньше от ajax, в отличие от перегрузки всей страницы.
    Ответ написан
    7 комментариев
  • Что на фрилансе чаще всего встречается на вашем опыте для веб разработчика?

    opium
    @opium
    Просто люблю качественно работать
    блин что за вопросы зайдите на биржу и посмотрите список заказов все же в открытом доступе
    Ответ написан
    Комментировать
  • Для чего нужен Docker?

    @viiy
    Linux сисадмин \ DevOps
    Представьте что нет никакой ложки докера.

    1) Есть одна физическая машина. Вы устанвливаете софт, разные приложухи, базы, web сервера, заходят тестовые юзеры, что-то запускают. Первая проблема - вы не понимаете кому что надо, кто владелец файлов, приложух, зачем висят демоны и кто за это ответственнен. Как выход, вы решаете это разделить на виртуалки.

    2) У вас есть физическая машина + на ней виртуалки. Вы выделяете под каждую задачу свою виртуалку, там сидят отдельные пользователи, вы навели какой то порядок. Появляется задача - пользователи хотят php 6, а его нет, хотят python3, а его нет, хотят Mongo, а она старой версии. Вы обновляете репозитарии, качаете новые пакеты, ставите, часть пользователей довольны, часть нет - им нужна старая версия какая была. Упс!

    3) Одна физическая машина + еще больше виртуальных машин. Вы разделили всех пользователей так, чтобы никто не дрался за версии софта, если нужен php6 - иди на эту машину, нужен php5 - вот на эту. Все счастливы, но появляются разработчики, которые говорят буквально так - "а у меня на рабочей машине все работает, я перенес все как было на виртуалку, а у меня появляется ошибка missing library libXXX.so.X". И вы понимаете что вам остается только создать полную копию машины разработчика, чтобы софт поехал на этой виртуалке без ошибок... И тут появляется Docker! :)

    4) Docker решает именно эту проблему. Вам не нужно заботится о софте который установлен на сервере/виртуалке. Вы просто берете и переносите софт со всеми "кишками" на другой сервер и он просто работает. Работает за счет того, что все "кишки" это слои файловой системы нанизанные как бисер друг на друга. Дополнительно решается проблема свободного места, т.к слои многократно переиспользуются контейнерами, если вам нужен php + одна библиотека, а другому php + другая библиотека, вы используете (грубо говоря) слой php, а для дополнительной библиотеки делаете отдельный слой, одновременно другой человек делает над php другой слой и вы не деретесь между собой и не видите чужих библиотек. Это грубо и скорее всего ради одной библиотеки никто новый слой не делает, делают слой пожирнее.

    Все запущенные процессы Docker помещает в изолированную среду процессов, файловой системы и сетевого стека. Есть много особенностей по работе с Docker, т.к он предполагает, что в одном контейнере вы запускаете один процесс. Если вам нужно запустить целый набор демоном, тут появляются проблемы, нужно писать шелл-скрипт, который все это поднимет в контейнере. Так же есть особенности по сети, файловой системе. Для кого то Docker спасение и решение всех проблем, но я как сисадмин от этого всего не в восторге.
    Ответ написан
    15 комментариев