Профиль пользователя заблокирован сроком с 10 апреля 2022 г. и навсегда по причине: систематические нарушения правил сервиса
  • Почему PHP теряет популярность?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Не знаю, не знаю. Судя по количеству тупых вопросов на Тостере, стать менее популярным пыху совсем не помешало бы, да только не получается никак.
    Ответ написан
    Комментировать
  • Как сделана функция var_dump?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Я так думаю что этот вопрос, который автор не осилил сформулировать - он про рекурсию.

    То есть вопрос не про то чтобы вывести информацию о типе скалярной переменной и ее значение, а как обходить сложные структуры - массивы и - главное - вложенные массивы и объекты.
    То есть вопрос про циклы и рекурсию. Про которую автор, теперь зная нужное слово, может посмотреть в интернете, тем более что на том же тостере примерно чуть меньше миллиона ответов, которые разжевывают тему.
    Ответ написан
    Комментировать
  • Нужно ли комментировать код?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Нужно различать технические комментарии, которые по сути являются надстройкой над языком, и пояснения к коду.
    В вопросе все свалено в кучу, и ответ от тов. куратора получился таким же. В итоге все говорят о разном и никогда не придут к единому мнению (причина 99% споров в интернете).

    Я так понимаю, о технических комментариях АКА phpdoc (о которых говорит тов. куратор) речь сейчас не идет. Если идет, то автор приглашается объяснить, чем они его не устраивают.

    Если же автор говорит о пояснениях к коду, то позиция совершенно правильная, такой подход называется самодокументируемый код, впервые упомянутый великим Фредериком Бруксом еще в 60-х годах прошлого века.
    Ответ написан
    2 комментария
  • В PHP канонично сначала проверить, потом сделать или попробовать и обработать ошибку?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Очень хороший вопрос и тема, в которой самое чудовищное количество самых дремучих северий на единицу кода.

    В общем случае, по умолчанию, никаких проверок и траев с кетчами быть не должно.

    Я понимаю, что это звучит богохульством для среднего пользователя похапе, но в реальности программы пишутся совсем по-другому.

    Пример: В обоих приведенных выше случаях мы имеем масло масляное: попытка подменить пхп в выборосе ошибки. Вопрос - зачем? Если файл не найден, то РНР сам прекрасно сообщит нам об ошибке, причем в подробностях, и скажет в чем конкретно заключается проблема. А по строчке "file not found" иди гадай - путь ли кривой или в имени файла опечатка, или вообще пустоту передали.

    Любые проверки надо делать только тогда, когда есть осмысленный сценарий их обработки.

    И обсуждать выше приведенные примеры имеет смысл только если автор вопроса предоставит такой сценарий. тупое error: file not found таким сценарием не является. Так что в общем случае оставляем код в покое и не устраиваем никакого карго культа из перехвата ошибок.

    Если чисто выбирать между двумя действиями (проверка и чтение) и одним (сразу читаем, потом ловим исключение),

    то последнее предпочтительнее, поскльку это атомарная операция, в то время как между проверкой и чтением состояние системы сожет измениться (файл может быть удален).

    Но повторюсь, если нет никакого осмысленного сценария обработки ошибки, то ловить её не надо.
    Ответ написан
    6 комментариев
  • Почему не понимает подключение require_once?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ради бога, не лезьте вы со своим корявым RedBean и require_once в Laravel!

    Либо колупайтесь дальше в своем похапе спагетти, либо, если уж используете современный фреймворк, используйте его собственные, нормалmные инструменты. Для работы с БД в Ларавеле служит Eloquent, который примерно в 100500 раз умнее этой протухшей фасоли
    Ответ написан
    Комментировать
  • Почему не отправляются данные post-формы при переносе на хостинг?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    form action="http://'.$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"].'#spec"
    Замените на <form action=""
    Ответ написан
    Комментировать
  • Снова про кеширование запросов к БД, как сделать?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Запоминаем второе главное правило программирования: если работает медленно, то не надо ничего кэшировать. Надо делать так, чтобы все работало быстро без всякого кэша.
    Ответ написан
    Комментировать
  • Функция на php для обрезки теста?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Сейчас я расскажу тебе про один секретный сайт.
    Лохи про него не знают, но по я тебе по секрету расскажу.
    Сайт называется google.com.

    Там, короче такая тема, пишешь, какой тебе код нужен и оно тебе выдает ссылки на кучу сайтов. Реально, без подставы. Пишешь " функция для обрезки текста в анонсе" и сразу куча сайтов. Я, когда попробовал сам обалдел.

    Только, главное, никому больше про этот сайт не рассказывай.
    Если все будут про него знать, то роскомнадзор его точно закроет.
    Ответ написан
    7 комментариев
  • Есть ли в TWIG что-то вроде include_once?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    include_once - это костыль, для криворуких пользователей, которые не знают, что у них где вызывается.
    Существование этой функции еще можно было оправдать в те времена, когда не было автолоада, и приложение могло состоять из нескольких независимых сторонних модулей.
    Но сейчас нет ни одной причины применять _once.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос из серии "тетенька, дайте попить, а то так есть хочется, что аж переночевать негде".

    "Простых" переводчиков не бывает.
    Чтобы описать правило "перед существительным в ед числе ставится une, un" надо определить

    - что слово является существительным
    - употреблено в единственном числе

    Ты все еще называешь свой переводчик "простым"?
    Ответ написан
    Комментировать
  • Как обрезать строку?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    $last = pathinfo ('web.pages.page', PATHINFO_EXTENSION);
    Ответ написан
    Комментировать
  • Универсальный метод обновления данных в БД?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Подход нормальный, но в описании класса должны быть жетско прописаны имена таблицы и всех полей.
    Имена полей в простейшем случае случае тупо засунуть в массив.

    После этого ты можешь использовать их для формирования динамических запросов.
    Например так: https://phpdelusions.net/pdo_examples/dynamical_update

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

    Метод Update будет у класса-предка, от которого будут наследоваться классы дл работы с отдельными сущностями, такими как article. Таким образом в классе Article у тебя вообще не будет метода Update, но при этом ты будешь писать

    $article->update($_POST);

    и все будет прекрасно обновляться.
    Ответ написан
    1 комментарий
  • Почему не устанавливается статус запроса?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    хтаксесс по каким-то причинам (я уже не помню по каким) не ловит 500 ошибку в ErrorDocument
    Ответ написан
    Комментировать
  • Объясните пожалуйста про Composer, как с ним работать?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В свой скрипт
    Ответ написан
    Комментировать
  • Имеет ли смысл начать изучение Symfony если более-менее знаком с Laravel?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Лара это НЕ модифицированная симфони.
    Именно Симфони и надо учить, есло не знаком паттернами, потому что Симфони заставляет им следовать
    А Лара следует изначальному подходу пхп "фигак-фигак" - и в продакшен, наплевав на все хорошие практики"
    Ответ написан
    3 комментария
  • Используется ли на Facebook ООП?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Используется.
    Этой заметке больше 10 лет.
    Ответ написан
    3 комментария
  • Как распарсить массив возвращаемый сервером в виде обычной строки?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Непонятна боязнь автора перед регулярками.
    Как будто любой другой парсер не споткнется о пропущенную точку с запятой.
    При том что регулярки делают код на порядки короче.

    preg_match_all('!A\[\d+\]=\[(.*?)\]!', $s, $matches);
    $data = [];
    foreach ($matches[1] as $row) {
        $data[] = str_getcsv($row, ",", "'");
    }


    ЗЫ.
    Мне не верится, что в питоне все настолько плохо.
    Хотелось бы увидеть решение от человека знающего язык.
    Ответ написан
    6 комментариев
  • Как сделать редирект на главную страницу после события submit на php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вот сынок, и пришло время тебе узнать о таком сайте, как гоогле.ком

    https://www.google.com/search?q=PHP+Как+сделать+ре...
    Ответ написан
    Комментировать
  • Как сократить array код?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это дебильный код и его не следует улучшать.

    Вместо этого надо сделать так, чтобы в приложении не было переменных $url100500, а изначально был нормальный массив
    Ответ написан
    Комментировать