• Как соблюсти принцип последней буквы SOLID?

    @Wentixon
    Во-первых, я советую тебе не заниматься херней, проходя всякие тупые курсы и делая свои велосипеды. Поверь, эти курсы тебя ничему хорошему не научат, я сам это все прошел - толку ровно ноль. У тебя все равно ничего хорошего не получится, так как лучшие разработчики годами оттачивают свои фреймворки, при чем заимствуя фишки друг у друга (речь идет о популярных фреймворках).

    Во-вторых, если все же у тебя шило в попе, хочется какую то херню погородить, то умные люди придумали некоторые стандарты. Условным стандартом в php являются компоненты с самого качественного фреймворка symfony, на которых кстати основан также laravel. Вот компонент роутера например. Популярные фреймворки состоят из таких мелких независимых компонентов.

    В-третьих, на будущее.. Прежде чем что то делать, посмотри как это сделано у других. Компонент роута я тебе дал, хочешь свой пилить (хотя это абсолютно бессмысленно), то пожалуйста, но лучше ты 100% не сделаешь, так что просто посмотри как сделано у них хотя бы.

    Ну а теперь отвечу на твой вопрос. Контроллеры привязываются к роутеру извне, так что внутри никаких привязок не будет. И вообще, тут не стоит говорить о SOLID, так как это этап загрузки приложения. Никто не может быть уверенным, что такой контроллер вообще найдется и в нем будет присутствовать такой метод, так что в этом случае просто будет исключение.

    Кстати можешь посмотреть эти курсы, самое толковое из того что есть
    Ответ написан
    64 комментария
  • API Viber проблема отправки сообщений?

    @ivashjke Автор вопроса
    Vue JS, React, React Native
    Если вдруг кто столкнется с такой же проблемой

    Дело оказалось в кодировке
    В моем случае
    При формировании сообщений использовались функции strtoupper и substr
    Замена на mb_strtoupper и mb_substr соответственно, исправили ситуацию
    Ответ написан
    Комментировать
  • Как найти заказ если не работал 1.5 года(javascript dev)?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    У меня недели две уйдет только на получение первого заказа.
    на других биржах тоже самое выйдет, какие еще есть способы ?

    Лопата в руки + объявление в региональную газету "покопаю огороды". Все остальное дольше искать.
    Других способов нет. Есть небольшой шанс, что повезет найти заказ на 2 недели в первый день, если ценой ломануть. Но очень призрачный. Не понимаю зачем Вам это если не нравится IT.

    подозреваю что форумы и группы в вк, но конкретно не знаю что.

    Очень вряд ли, особенно если кричать везде, что IT Вы не любите и через две недели Вы точно сольетесь. Сами прикиньте - кому оно надо?
    Ответ написан
    3 комментария
  • Актуальна ли ниша PHP на Upwork?

    opium
    @opium
    Просто люблю качественно работать
    Что вам мешает просто зайти и посмотреть, там же все открыто
    Ответ написан
    Комментировать
  • Как сделать тяжелый импорт из excel 800к товаров?

    syschel
    @syschel
    freelance/python/django/backend
    1. У вас именно EXEL файл или всётаки CSV который вы открываете на десктопе с помощью экселя?
    2. Если всётаки EXEL файл. Там слишком много всего нагорожено, на вроде вёрсток и формул или голые таблицы?
    3. Если всётаки голые таблицы. Вы можете делать именно CSV файл?

    Если данные будут в CVS формате, то можно всё загрузить средствами MYSQL и не использовать для обработки PHP или его библиотеки. Тогда результат будет в разы выше, чем если перебирать с помощью ПХП и потом кормить в MSQL

    Когда я в своё время сталкивался с проблемой загрузки файла товаров в базу, там было несколько миллионов единиц, то оптимальным стало именно такое решение > LOAD DATA

    Кусок моего старого MySQL кода, для наглядности
    // Загружаем кашерный файл
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,article,available,currencyId,delivery,description,id,name,oldprice,param,picture,price,url,vendor,advcampaign_id,advcampaign_name);
    
    // Загружаем только нужные поля (!!!)
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,@ISBN,@adult,@age,article,@attrs,@author,available,@barcode,@binding,@brand,@categoryId,@country_of_origin,currencyId,delivery,description,@downloadable,@format,@gender,id,@local_delivery_cost,@manufacturer_warranty,@market_category,@model,@modified_time,name,oldprice,@orderingTime,@page_extent,param,@performed_by,@pickup,picture,price,@publisher,@sales_notes,@series,@store,@syns,@topseller,@type,@typePrefix,url,vendor,@vendorCode,@weight,@year,advcampaign_id,advcampaign_name,@deeplink);
    
    // Все поля
    LOAD DATA LOCAL INFILE '/srv/cms_cpa/files/adimport_items.csv' INTO TABLE adimport_tmp CHARACTER SET utf8 FIELDS TERMINATED BY '|' ENCLOSED BY "'" LINES TERMINATED BY '\n' IGNORE 1 LINES (id_adimport,ISBN,adult,age,article,attrs,author,available,barcode,binding,brand,categoryId,country_of_origin,currencyId,delivery,description,downloadable,format,gender,id,local_delivery_cost,manufacturer_warranty,market_category,model,modified_time,name,oldprice,orderingTime,page_extent,param,performed_by,pickup,picture,price,publisher,sales_notes,series,store,syns,topseller,type,typePrefix,url,vendor,vendorCode,weight,year,advcampaign_id,advcampaign_name,deeplink);

    Ответ написан
    Комментировать
  • В какое направление смотерть в PHP разработке?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Тестовые для джуниора:
    Какие тестовые проекты стоит написать

    Фреймворки:


    На CMS смотреть не стоит, разве только если CMS интернет-магазинов (кроме Битрикса — это тупиковые знания, замкнутые сами на себя, и сомнительного качества)
    Ответ написан
    1 комментарий
  • Есть ли рабочие примеры websocket?

    Ответ написан
    Комментировать
  • Как правильно составить тернарный оператор?

    goszowski
    @goszowski
    PHP Developer
    {{ $currentRoute == 'home' ? 'class=active' : '' }} (без кавычек в названии класса).
    Но советую писать так: class="{{ $currentRoute == 'home' ? 'active' : null }}" - так будет проще добавить еще один класс в будущем, если что.
    Ответ написан
    1 комментарий