• Как правильно отключить часть кода?

    @Vitsliputsli
    zaart, $_POST['g-recaptcha-response'] вы напрямую вставляете в GET запрос, вероятно стоит валидировать эти данные перед вставкой. Или лучше использовать post запрос, для таких действий логически он больше подходит, да и secret светить в строке запроса тоже не очень хорошо.
  • С чего начать изучение языка?

    @Vitsliputsli
    Дмитрий Беляев, о том и речь, что когда говорим слабая/сильная, уже неизвестно, что конкретно имеется ввиду, а когда заявляем, что это "комплекс классификаций", очевидно, что это уже совсем какие-то субъективные измышления.
    Неявная типизация здесь совсем не при чем, т.к. проверки типов при операциях и выбор типа исходя из значений - это разные вещи. Разница принципиальная, неявная - это когда что-то делается неявно, а здесь наоборот отсутствуют дополнительные проверки, что ослабляет контроль над типами со стороны языка. Т.е. речь про безопасность типов в памяти.
    Исторически:
    In 1974, Liskov and S. Zilles defined a strongly-typed language as one in which "whenever an object is passed from a calling function to a called function, its type must be compatible with the type declared in the called function."[3] In 1977, K. Jackson wrote, "In a strongly typed language each data area will have a distinct type and each process will state its communication requirements in terms of these types."

    То что описываете вы, это полнота языка по Тьюрингу, прямой связи с типизацией здесь нет, просто потому, что язык вообще может не иметь типизации.
  • С чего начать изучение языка?

    @Vitsliputsli
    Дмитрий Беляев, собственно, выше уже написал, могу процитировать Вики:
    Languages are often colloquially referred to as strongly typed or weakly typed. In fact, there is no universally accepted definition of what these terms mean. In general, there are more precise terms to represent the differences between type systems that lead people to call them "strong" or "weak".

    Поэтому "на самом деле" всеми признанного определения этой классификации нет. На мой взгляд, самое адекватное определение для сильной/слабой - это насколько сильно/слабо выражены типы в языке, т.е. насколько много проверок этих типов существует при осуществлении операций. Если вы можете обратиться к переменной одного типа, как к переменной другого типа, и компилятор/интерпретатор на это никак не прореагирует - это слабая типизация (здесь речь не про неявные преобразование типов, а именно про отсутствие контроля типов при обращении к памяти со стороны языка). Называть неявное преобразование типов слабой типизацией на мой взгляд странно, даже семантически причем здесь слово "слабая" неизвестно.
  • Как правильно отключить часть кода?

    @Vitsliputsli
    zaart, может я не понимаю, в чем проблема... Напишите перед вашим
    if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])) (isset, кстати, здесь не нужен)
    что-то вроде:
    if ($config->get('recaptcha.enable') === true) {
    $config - это объект Конфигурация, если его нет, то нужно создать соответствующий класс, который будет парсить конфиг-файл, и обеспечивать доступ к его свойствам по get-методу.
  • Как правильно отключить часть кода?

    @Vitsliputsli
    Антон Р., это неявное поведение, потом пойди догадайся как приложение будет себя вести исходя из ip или других факторов.

    zaart, зачем 2 формы? Одна, но с условием, опираясь на конфиг.
  • С чего начать изучение языка?

    @Vitsliputsli
    Дмитрий Беляев, динамическая/статическая это одно, явная/не явная другое, а сильная/слабая третье. К примеру, Си имеет статическую слабую типизацию. Слабая она не потому что явная или статическая, а потому, что контроль типов слабый, и программист сам должен отслеживать отдельные моменты: где строка, а где число.
  • Как преобразовать "[a,b,c]" в [a,b,c]?

    @Vitsliputsli
    nnikolyaa, тем, что позволяет выполнять любой код, и если выполняемая строка приходит извне, нужно жёстко её контролировать.
  • Как правильно отключить часть кода?

    @Vitsliputsli
    Ну вот решил я на локалке потестить код и поставил в файле конфига recaptcha = 0

    Так и сделайте, в чем сложность?
  • С чего начать изучение языка?

    @Vitsliputsli
    А еще, есть два типа людей - те, которые думают, что в TypeScript/Java/C# сильная система типов, и те, кто понимает, что они в разы слабее чем в ML языках.

    Понятие слабой/сильной типизации уже давно потеряло всякий смысл, из-за людей, которые думают, что неявное преобразование типов - это слабая типизация. Поэтому лучше писать, что подразумевается под этой фразой. Не говоря уже о том, что слабую типизацию в Си, некотрые воспринимают как возможность и дополнительную гибкость языка, превышающую опасность ошибок вызванных подобной реализацией.
  • Как преобразовать "[a,b,c]" в [a,b,c]?

    @Vitsliputsli
    MinTnt, nnikolyaa, ну вы же понимаете, что exec это опасная команда? И использовать ее нужно только в крайнем случае, здесь вполне можно без нее обойтись.
  • Является ли PHP аналогом Flask?

    @Vitsliputsli
    DevMan,
    многое. прост сравните хотя бы стандартную либу питона и слоника. не говоря уже о сторонних решениях.
    но в разрезе веб–дева – это особо не роялит.

    О том и речь, не то чтобы нельзя сделать, просто на python гораздо проще и удобнее из-за богатой библиотеки.
  • Является ли PHP аналогом Flask?

    @Vitsliputsli
    Александр, вы описываете потоки (говоря про python), но сравниваете их с процессами (говоря про php). В PHP тоже есть возможность использовать потоки.
  • Является ли PHP аналогом Flask?

    @Vitsliputsli
    Yupiter7575,
    Ну как пример, нейронки намного удобнее на пайтоне писать


    сделать можно и там, и там, но для каких-то вещей удобней использовать python.
  • Является ли PHP аналогом Flask?

    @Vitsliputsli
    Александр, процессная многопоточность реализуется легко, очевидно. Многопоточность через треды тоже без костылей (если я не прав, расскажите подробнее что имеете ввиду), другое дело, что это нестандартное, непривычное решение в php.
  • Является ли PHP аналогом Flask?

    @Vitsliputsli
    Денис Юрьев, да, я собственно это и хотел уточнить, что сделать можно и там, и там, но для каких-то вещей удобней использовать python.
  • Что плохого в статических функциях?

    @Vitsliputsli
    MikUrrey, это понятно, но чем это лучше? Статические обращения не используют из-за проблем, которые это вносит. Но вариант 2 не решает подобных проблем, на мой взгляд, мы просто формально не используем статические методы, но фактически ничего не изменилось. Или нет?
  • Что плохого в статических функциях?

    @Vitsliputsli
    MikUrrey,
    - теперь вместо
    \app\helpers\StringHelper::truncate($string);
    используем
    \app\helpers\string\truncate($string);
    суть не меняется, но мусорный бак с набором "всякой всячины" превратился в аккуратный чемоданчик инструментов)

    А можете пояснить, чем 2ой вариант лучше? Выглядят они одинаково.
  • Является ли PHP аналогом Flask?

    @Vitsliputsli
    А что пхп не может, что может python?
  • Как исключить из выборки, группу записей с одним ID при выполнении условия?

    @Vitsliputsli
    Группируйте по аккаунту, считайте внутри группы кол-во соответствующих и не соответствующих, исключайте группы по этим данным.
  • Почему не работает проброс порта для GIT?

    @Vitsliputsli
    Судя по ответу он подключается, но не может найти указанный реп. Попробуйте посмотреть, что напишет:
    git remote -v

    Зачем, вы подключаетесь по https,если настраивали только ssh? Да и странно это, на стандартный порт https настраивать ssh.