Задать вопрос
  • Как узнать почему php-fpm: pool www полностью грузит процессор?

    TTATPuOT
    @TTATPuOT
    https://code.patriotovsky.ru/
    Включаете отображение ошибок и используйте die(). Заходите в код плагина, сначала добавляете в начало die(), затем ниже, ниже и ниже. До тех пор пока опять не вывалится ошибка. Таким образом чётко найдёте строку, в которой происходит, скорее всего, зацикливание. Там уже и разберётесь.
    Ответ написан
    1 комментарий
  • Почему контроллер не видит событие в Laravel?

    darikinet
    @darikinet Автор вопроса
    Все дело оказалось в правах на папку Events.
    Ответ написан
    1 комментарий
  • Почему контроллер не видит событие в Laravel?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
     Если событие находится по пути app/Events/UsersPush.php, и там внутри правильный неймспейс, попробуйте `composer dumpautoload`.
    Ответ написан
    Комментировать
  • Куда складывать собственные функции в laravel?

    Sanasol
    @Sanasol Куратор тега Laravel
    нельзя просто так взять и загуглить ошибку
    Ларавел здесь не причем.
    composer решает этот вопрос, а точнее автозагрузка.

    https://laravel-news.com/creating-helpers

    ...
    "autoload": {
        "files": [
            "app/helpers.php"
        ],
    ...
    Ответ написан
    Комментировать
  • Почему php код отображается в браузере закоментированный?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Потому что он не исполняется.
    На сервере на настроен РНР

    а комментарии к делу не относятся, это хрому так хочется отображать тег, который он не понимает
    Ответ написан
    4 комментария
  • Как покрыть подобный метод юнит тестом?

    @green_goo
    Ведь если я укажу существующие сейчас clientId, и с ними пройдут юнит тесты, и когда то удалят эти clientId из БД, то юнит тесты зафейлятся

    Юнит тесты ходят в реальную бд? Это неправильно.
    Нужно заменять в тесте слой взаимодействия с бд заглушкой, которая будет возвращать нужные данные, либо для тестов своя бд, где перед тестом она заполняется нужными данными
    Ответ написан
    4 комментария
  • На youtub есть канал где читают код PHP?

    hack504
    @hack504
    Изучаю PHP рекомендуют читать чужой код.

    Даже спецы не читают чужой код, если их не заставят. Но было бы прикольно, действительно, посмотреть на youtub как разрабы читают чужой код, особенно на PHP
    1387209829_1176468776.gif
    Ответ написан
    10 комментариев
  • Как создать массив объектов?

    @Nujabes37
    :DEATH
    $example = json_encode(
        [
            [
                'id' => [
                    1,
                    2,
                    3,
                ],
            ],
            [
                'phone' => [
                    '12312312',
                    '423423',
                    '555',
                ],
            ],
        ]
    );

    Результат
    [
        {"id":[1, 2, 3]},
        {"phone":["12312312", "423423", "555"]}
    ]
    Ответ написан
    Комментировать
  • Зачем использовать callback функции?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Крайне хорошее описание по таким вещам есть в Википедии. А теперь к примерам:

    1. Передача параметром
    Такие функции удобно передавать параметром/возвращать из других функций. Тут лучше углубиться в тему: Функция высшего порядка

    Например для удобной передачи асбтрактной функциональности, которая будет применяться например к каждому члену итератора/массива. Это используется например в таких стандартных функциях array_{map/filter/reduce}. В коллбеке то, что будет применяться к каждому члену массива.

    Вообще функции высшего порядка не просто "пример использовани", а даже целая концепция программирования.

    2. Отложенный/ленивый вызов
    Например в PHP приложениях используется в роутерах/контейнере/логере, да много где. Суть в том, что в соллбеке спрятана функциональность, иногда очень большая. Элементов и этих фукцниональности тоже может быть много, а нужно все зарегистрировать. Чтобы не плодить тысячи объектов при регистрации — каждый кусочек функциональности заворачивают в коллбек, и только при вызове (например роута), вызывается коллбек и соответственно все, что в нем начинает работать.

    class Container
    {
         private $callableServices;
    
         public function add(string $serviceName, callable $service)
         {
              $this->callableServices[$serviceName] = $service;
         }
    
         public function get(string $serviceName)
         {
              $service = $this->callableServices[$serviceName];
    
              return $service();
         }
    }
    
    $container = new Container();
    // объект тут не создается, тк он внутри функции, которая не вызывается
    $container->add('a', function() {
         return new FirstBigService();
    });
    // объект тут не создается, тк он внутри функции, которая не вызывается
    $container->add('b', function() {
         return new SecondBigService();
    });
    
    // Внутри метода get() идет не просто доставание нужного элемента, 
    // а еще и его вызов (тк лежат функции), то есть именно сейчас 
    // произойдет new FirstBigService()
    $service = $container->get('a');


    3. Изоляция контекста
    // тут левый код
    ...
    
    // Код ниже работает изолировано и на него ничего не может подействоват,
    // т.к. внутри свой контекст
    (function() {
        $app = new Application();
        $app->run();
    });
    Ответ написан
    Комментировать
  • Можно ли сократить код?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Вам необходимо познать рекурсию.

    upd
    Когда познаете, нужно будет написать функцию, которая:
    1. Определяет есть ли следующий уровень вложенности и если есть, то выбирает этот уровень и производит вызов самой себя с этим уровнем.
    2. Если следующего уровня нет, то возвращает контент из текущего уровня.
    Ответ написан
    Комментировать
  • Как безболезненно менять весь контент письма MailMessage в laravel?

    New_Horizons
    @New_Horizons
    Бред:
    Возможно методом view переопределить шаблон на свой. Ну а свой сделать на основе встроенного
    Ответ написан
    Комментировать
  • Чем отличается web-разработчик от web-программиста?

    Zoominger
    @Zoominger
    System Integrator
    Web-Разработчик занимается разработкой сайтов, а web-программист занимается программированием сайтов.
    Ответ написан
    3 комментария
  • Что конкретно происходит при аутентификации через Socialite/JWTAuth и вообще через API в контексте Vue.js (запутался в этих токенах)?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    Токен, который возвращают социалки/github - их токен авторизации. Аналог логина/пароля, только с ограниченными правами.

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

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

    В общем это два разных токена, друг с другом не связанных. Сам по себе jwt тут ни при чем. Обойтись можно и без него, но лучше юзнуть laravel-passport и непарится.
    Ответ написан
    1 комментарий
  • Что нужно знать про ООП?

    Tomio
    @Tomio
    backend developer (python, php)
    Изучая ООП вам нужно будет понять:
    1. основные принципы ООП: инкапсуляция, полиморфизм, наследование. И еще почитайте про абстракцию.
    2. отличие self от static. Почитать про раннее и позднее статическое связывание
    3. принципы SOLID
    4. смысл инъекции зависимостей (Dependency Injection) и инверсии зависимостей (Dependency Inversion - один из принципов SOLID)
    5. основные шаблоны проектирования (design patterns)

    Ну и научитесь думать абстрактно) Не завязывайтесь на реализации, прорабатывайте интерфейсы.
    Ответ написан
    18 комментариев
  • Как проверить работоспособность сайта на новой версии php?

    DevMan
    @DevMan
    загнать проект в phpstorm, указать в настройках php7, читать ошибки.
    Ответ написан
    3 комментария
  • Какие нужны знания для крепкого web senior?

    @Lord_Dantes
    Собственно нужны мысли опытных ребят куда двигаться ибо учение бесконечно, а хочется "быть в тренде" еще долго.


    Это вы не сюда попали Уважаемый "синьйор", тостер площадка для джунов и начинающий мидлов. Посмотрите сколько людей вносят вклад в тостер и сами все поймете. Для вашей целе я бы (будучи джуном) ездил бы по семинарам всяких веб разработчиков и общался с ними, иначе что вы хотите услышать на тостере?
    Ответ написан
  • Эта регулярка не запрещает ввод других символов, а как запретить?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    olya_097, еще раз здравствуйте. Ваш вопрос слегка не полон, поэтому попробую догадаться в чем дело.
    эта регулярка не запрещает ввод других символов

    Догадка: видимо Вы используете какую то библиотеку/плагин в котором можно задавать с помощью регулярки фильтр вводимых данных для полей вода типа input и textarea.
    Если это так, то хотелось бы узнать что это за библиотека/плагин и тогда возможно понять в чем причина.
    Если же Вы пользуетесь обычным input и/или textarea и при этом не используете никаких библиотек/плагинов, расширяющих их функционал, то скорее всего вы имеете небольшой самописный кусок js кода, который через регулярку проверяет введенный текст (или вводимый текст) и что то там дальше делает. Если это так, то хотелось бы увидеть этот кусок кода вместе с частью разметки, включающей в себя контролируемые кодом поля ввода и тогда, я уверен, мы сможем Вам помочь разобраться с решением Вашего вопроса.
    Ответ написан
    7 комментариев
  • Как записать событие Js в бд?

    @S-a-n-d-r-0
    Как вариант:
    На стороне клиента:
    <div class=“google-ad-container”>someHTML...</div>
    <script>
    var google_ad_click = 0; //объявляете переменную, в которую будете считать клики
    $('.google-ad-container').click(function (event) {
      google_ad_click = google_ad_click + 1; //считаете клики
    });
    
    setInterval(function () {
    	var data = new FormData();
    	data.append('google_ad_click_tratata', google_ad_click);
    	$.ajax({ //отправляем все это дело на сервер
    			type: "POST",
    			url: "АДРЕСОБРАБОТЧИКАВСТАВИТЬСВОЙ.php",
    			data: data,
    			cache: false,
    			processData: false, // NEEDED, DON'T OMIT THIS
    			contentType: false, // NEEDED, DON'T OMIT THIS (requires jQuery 1.6+)
    			dataType: 'json',
    			success: function(respond){ //если ajax отправился нормально
    				google_ad_click = 0; //обнуляем счетчик кликов, чтобы начал считаться снова
    				console.log(JSON.stringify(respond)); //если вы что-то выводите на сервере, вывести это на консоль на клиенте
    			}
    			
    			,error: function(xhr, status, error) //если ajax НЕ отправился нормально
    			{
    				console.log('ajaxError xhr:', xhr); //выводим ошибки в консоль
    				console.log('ajaxError status:', status);
    				console.log('ajaxError error:', error);
    			}
    		});
    }, 30000); //проворачиваем это дело каждые пол минуты
    
    </script>


    На стороне сервера, в файле АДРЕСОБРАБОТЧИКАВСТАВИТЬСВОЙ.php
    if ($_POST['google_ad_click_tratata'])
    if (is_numeric($_POST['google_ad_click_tratata']))
    {
    	$addclicks = $_POST['google_ad_click_tratata'];
    	//А дальше - добавляем значение addclicks к нужному полю в вашей БД
    }

    Код может быть с ошибками, не проверял, но суть такая
    Ответ написан
    3 комментария
  • Одноразовая ссылка на node js?

    Stalker_RED
    @Stalker_RED
    Генерируй уникальную ссылку, записывай в БД, после использования - удаляй.
    Ответ написан
    Комментировать