• Как в сокращенном if использовать только 1 вариант?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    <?= $id ? 'id = ' . Html::encode($id) : '' ?>
    Так устроит?
    А вообще уточните версию php :)
    Ответ написан
    2 комментария
  • Знания Junior php разработчика?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    что должен знать идеальный джуниор (мое личное мнение):

    - Сетевой стэк. Нужно иметь хотя бы базовое представление о том как с сервером общаются. Ну то есть не нужно лезть в дебри, но понимать что такое HTTP или чем TCP от UDP отличается - нужно. В целом это пара часов чтения википедии.
    - GIT или любая другая распределенная VCS. Базовые навыки, что бы хотя бы понимал что есть git revert или git rebase, что такое фичабрэнчи и примерное представление как это работает и зачем надо.
    - Базовые основы unix. Ну то есть что бы не пугаться таких вещей как ssh хотя бы.
    - PHP. Без этого никуда. Он должен понимать что такое слабая динамическая типизация (не заучивать табличку кастов типов, а понимать плюсы и минусы, такая же история с приоритетами операторов - не заучивать а знать как избегать проблем с чтением кода)
    - Понимать что код чаще читают чем пишут, а потому не экономить 5 минут на написании кода, а писать так, чтобы сэкономить 30 минут человеку, разбирающемуся в куске кода.
    - Знать базовые вещи в плане безопасности. XSS и как защищаться, SQL инъекции и как защищаться, CSRF, MITM. Понимать что такое NDA, что данные пользователей - секретная информация. Как хэшировать пароли (не md5 а password_hash) и почему это важно.
    - Знать SQL. Глубоких знаний не требуется, нужно лишь понимание того, что такое нормальная форма, желательно разобраться с вопросом денормализации данных. Идеально иметь хотя бы базовые представления о том как работать с NoSQL решениями.
    - Процедурное программирование: почему глобальные переменные порождают сложность, что такое состояние, как можно использовать классы для изоляции состояния и т.д. Инкапсуляция. Инварианты, пост/пред условия, сохранение целостности...
    - Разделение ответственности. Это один из важнейших принципов, и упрощать все это до "mvc фреймворк" слегка неправильно. Вы должны понимать что от чего отделяете и главное зачем.
    - Автоматические тесты. Джуниор должен знать что это такое и иметь хотя бы минимальный опыт их написания. Должен понимать разницу между юнит и интеграционными тестами. Быть знакомым с пирамидой тестирования.
    - Уметь решать стандартные задачи не задавая слишком много вопросов. Например регистрацию пользователя по email-у вы должны написать, или авторизацию через соц сети, или комментарии, или новостную ленту.
    - Уметь дебажить. xdebug, blackfire и тд.

    В целом где-то за годик весь этот список можно влегкую покрыть с нуля.

    p.s. Я в списке специально не указывал ООП, поскольку всеравно первые пару лет у разработчиков выходит процедурщина на классах. Это не плохо, но того что в моем списке более чем должно хватать для решения стандартных задач. Но термины вроде "инкапсуляция/полиморфизм/наследование" требуются в обязательном порядке подавляющем количеством интервьюверов, а стало быть знать это надо. Единственное что - рекомендую в свободное время глубже погрузиться в этот вопрос а не тупо заучивать формулировки.

    Так же вещи вроде docker джуниорам знать не обязательно просто потому, что их врядли допустят сходу к управлению инфраструктурой. А так пару неделек на изучение и вперед.
    Ответ написан
    12 комментариев
  • Как в jquery выбрать все классы которые начинаются с определенного слова?

    @kirill-93
    Никак. Вы можете выбрать элементы, у которых атрибут класс начинается с alert-, но если этот класс стоит вторым или третьим, то вы до него не доберетесь. Лучше перечислить все классы alert-* и удалять их все.
    UPD: В принципе можно конечно регуляркой, но скорее всего оно того не стоит.
    Ответ написан
    1 комментарий
  • Как реализовать изменение пользователем из админки css свойств?

    iiiBird
    @iiiBird Куратор тега CSS
    Пока ты спишь - твой конкурент совершенствуется
    сделай разные классы для квадратного и закругленного и добавляй их блокам.
    Ответ написан
    2 комментария
  • Где можно взять html шаблон, который можно использовать в любых целях?

    Punkie
    @Punkie
    Только если к шаблону приложена лицензия с условиями использования и только если вариант лицензии предусматривает свободное использование вплоть до коммерции.
    Ответ написан
    Комментировать
  • Где можно взять html шаблон, который можно использовать в любых целях?

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

    @murlogen
    А при чем здесь онлайн?

    Тут эффективнее оффлановые методы.

    Рекомендации.
    Если вас любят - вас рекомендуют друзьям.

    Бонусы, скидки - какие-нибудь хитрые
    Типа пригласи друга получи бесплатно что то там.

    СМС-рассылки.
    Если их делать с умом - они не раздражают.
    А привлекают кучу народа (это касается только старых клиентов, данные которых у вас уже есть).
    Покупать базы номеров не стоит.
    Ответ написан
    Комментировать
  • Почему не работает условие?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    приведи код в нормальный вид и посмотри что у тебя и когда выполняется:
    <?php
    
    if(isset($k1->Цена)) {
        
        $vag="VAG";
        
        echo 'K1 PRICE = '.$price.'<br>';    
        
        if ($k1->Запчасть->Бренд == $vag) {
            echo 'VAG <br>';
            $price = $k1->Цена * $koef;
        } else {
            echo 'NOT VAG <br>';
            
            if ($k1->Цена <= "150") {
                $price = $k1->Цена * $koef2 * 1.2;
                echo 'PRICE KOEF = koef2 * 1.2 <br>';
            } else {
                $price = $k1->Цена * $koef2;
                echo 'PRICE KOEF = koef2<br>';
            }
            
            echo 'PRICE = '.$price.'<br>';
            
            $dataRes_final[$k][] = [
                'brand' => $k1->Запчасть->Бренд,
                'code' => $k1->Запчасть->Код,
                'title' => $k1->Запчасть->Наименование,
                'price'=>$price
            ];
        }
    }
    Ответ написан
    Комментировать
  • Как вытащить имена всех подклассов?

    erniesto77
    @erniesto77
    oop, rb, py, php, js
    как вариант получить getNamespaceName и рекурсивно перебрать все файлы в этой директории начинающиеся с заглавной буквы
    Ответ написан
    Комментировать
  • Как вытащить имена всех подклассов?

    DevMan
    @DevMan
    подобная задача попахивает, но дело хозяйское.
    решается, например, так ideone.com/mzNR9d
    Ответ написан
  • Как реализовать такую карту?

    AlexIndex
    @AlexIndex
    Разработчик, Web и разное остальное понемногу
    SVG, попозже возможно так же подкину аналог реализиации

    -----
    непрошло и года ;)
    чет руки только дошли
    https://github.com/alexiTakov/svg-map-Russia
    Ответ написан
    Комментировать
  • Как с помощью нативного php расширения защитить свои наработки на php?

    CityCat4
    @CityCat4 Куратор тега C
    //COPY01 EXEC PGM=IEBGENER
    Общий ответ - никак. Потому что неотламываемой защиты нет, есть скорость взлома. Если Ваш проект коммерчески успешен и приносит большой профит (то есть такой, который будет заведомо больше стоимости взлома) - отломают все, что бы Вы ни пристроили, тем более в PHP, где способов защиты не так уж и много. Да и ставить себе на сервер непонятно что за модуль я не стал бы.
    Здесь надо немного взглянуть глубже, убить в себе ИТ-шника и поглядеть на задачу глазами бизнеса. Ведь защита Вам нужна не сама по себе, а чтобы не тырили, а покупали, то есть ради обеспечения профита с разработки. Вот и задумайтесь - а можно ли обеспечить профит другими способами? OnYourLips дал Вам замечательный совет. Почему становится таким популярным SaaS? А потому что так значительно проще защищать свои наработки - ведь они никуда не уходят :) Более того, ты можешь и свои условия клиенту диктовать, как только популярность наберешь, и его данными втихушку разжиться - не для того чтобы использовать, конечно - за это и огрести можно, а просто поржать.
    Ответ написан
    Комментировать
  • Как с помощью нативного php расширения защитить свои наработки на php?

    @pudovMaxim
    web-developer
    Не обижайтесь, но как клиент я бы послал такую контору с защитой на юх, если бы ваш продукт потребовал установку дополнительного модуля к пхп. Но специфику вашей работы не знаю, может оно и оправдано :)
    Ответ написан
    4 комментария
  • Как в Xdebug пошагово отладить цикл?

    65536
    @65536
    $testVar = 404;
    while ($testVar < 410) {
        $testVar++;
    }


    похоже шторм намекает вам об использовании PSR)
    Ответ написан
    1 комментарий
  • Почему не работает AJAX в Yii2?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Вероятно дело в том, что Вы не отправили CSRF токен. Поэтому при get запросе все работает, а при post ошибка, так как переданные данные не прошли проверку. Надо либо добавить в запрос CSRF токен либо отключить его проверку для данного экшена. Подробно тут: www.fantomslim.ru/articles/yii2-ispolzovanie-csrf-...
    Ответ написан
    Комментировать
  • Как лучше реализовать региональность сайта?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Я бы не стал делать города 3 уровнем домена NEW.ru
    Лучше сделать подпапкой и со старого домена - сделать 301 редиректы.

    Далее - по субъектам (округам, областям и т.д.): здесь список
    Вологодская область 35 35 19 RU-VLG

    И здесь: коды по стране, округу и городу.
    RU VGD Vologda Vologda ---4---- AI 0001

    И объединяем: сайт/страна-область/город/,
    делая 301 редирект для Вологды (для других - аналогично) на эту папку со старого (также не забыв указать новый URL в карте сайта: sitemap.xml, если URL был изменён):

    new.ru/ru-vlg/vologda/

    Не путать регионы/штаты страны с кодами языков !

    Также, рекомендую еще почитать про геотаргетинг в справке гугла (на русском): здесь
    Вот, что важно для таргетинга по городам:
    Другие сигналы. Также целевую аудиторию вашего сайта позволяют определить указанные на странице местные адреса и номера телефонов, использование определенного языка и валюты, ссылки с других сайтов или данные сервиса Google Мой бизнес (если вы с ним работаете).

    Google не использует для геотаргетинга ни метатеги расположения (например, geo.position или distribution), ни атрибуты HTML.
    Ответ написан
    7 комментариев
  • Весь код программы на c# пишется в одном файле Program.cs?

    @AxenovSergey
    Так делают только во время обучения или для очень простых программ.
    Ответ написан
    Комментировать
  • В чем отличие двумерного массива от массива массивов?

    @tikks
    Принципиальное отличие в том, что у массивов внутри массива могут быть разные размерности.
    Если наглядно представить себе массив массивов как таблицу, а внутренние - как строки, то эти строки могут быть разной длины, эта таблица будет как бы ступенчатая. Для двухмерного массива таблица будет прямоугольная, все строки одинаковой длины.

    Обратите внимание на свойство Length:
    Для массива массивов myArray:
    myArray.Lenth - вернет число вложенных массивов,
    myArray[0].Length - размер первого вложенного массива,
    myArray[1].Length - размер второго вложенного массива, который в общем случае не равен myArray[0].Length,
    и т.д.

    Для многомерного массива myArray:
    myArray.Lenth - суммарное вернет число элементов по всем измерениям,
    myArray.Rank - число измерений массива,
    myArray.GetUpperBound(dimension) - размера массива по измерению dimension (от 0 до myArray.Rank-1).

    Доступ к элементам многомерных массивов и массивов массивов тоже осуществляется по-разному. Вот тут можно почитать про особенности доступа к элементам массива:
    Массивы массивов
    Многомерные массивы
    Ответ написан
    1 комментарий
  • В чем отличие двумерного массива от массива массивов?

    AxisPod
    @AxisPod
    Ну двумерный массив это прямоугольник, а массив массивов может быть каким угодно.
    Ответ написан
    Комментировать