Задать вопрос
Ответы пользователя по тегу PHP
  • Почему умер pear.php.net?

    Adamos
    @Adamos
    Уже упомянутый взлом PEAR бурно обсуждали на ОпенНете.
    Сходились на том, что PEAR умер за ненужностью, ибо есть, например, Composer.
    Ответ написан
    Комментировать
  • PHP - Города в предложном падеже - как отменить склонение для некоторых городов?

    Adamos
    @Adamos
    Все это рукоблудие оправдано только в случае небольшого числа городов (а их, возможно, проще будет вручную просклонять, чем выдумывать алгоритмы). Плюс потом вы воткнетесь в то, что ваша страница выдает "Я в Владимире" (реальный косяк сразу после обновления сайта Мосигры, например).
    Есть же серьезная база - phpMorphy. От него и плясать.
    Ответ написан
    3 комментария
  • С чего начать написание своего движка на php?

    Adamos
    @Adamos
    Ваши велосипеды упростят вам работу в 2 раза, но усложнят поддержку на порядок.
    Грамотное использование фреймворков со своими наработками упростит вам работу не меньше, зато не создаст головной боли потом (в том числе и вам же самому через пару лет, если придется этих кадавров поддерживать).

    Фреймворки отнюдь не помешают вам реализовать свои собственные удобства. Но избавят от ошибок в рутине, которую вы все равно лучше, чем программисты Symfony, не разрулите.
    Ответ написан
    Комментировать
  • Где размещать вспомогательные классы в mvc архитектуре?

    Adamos
    @Adamos
    /vendor/{your_company}/{project}?
    Ответ написан
    Комментировать
  • Чистый код в php?

    Adamos
    @Adamos
    Глупо молиться на SOLID, KISS и прочие часто цитируемые вещи. Они - не катехизис и единственно правильный путь, они - всего лишь идеи, помогающие взглянуть на код не с той стороны, с которой на него смотрит разработчик, и уменьшить связность, например.
    Это все равно, как если бы вы занимались изобретениями и проверяли не успешность решения ими поставленной задачи, а соответствие этого решения высосанным когда-то из пальца в попытке систематизировать накопленный опыт принципам ТРИЗ.
    Ответ написан
    2 комментария
  • Так ли необходимо использовать плэйсхолдеры для избежания инъекций, или написанная собственноручно проверка входных данных будет более чем достаточна?

    Adamos
    @Adamos
    Чем меньше программист должен думать над кодом - тем надежнее будет код.
    Используя плейсхолдеры или более современные методы работы с базой, вы освобождаете свою голову от рутины (с которой компьютер справляется лучше человека) и можете сосредоточиться на действительно важных вещах.

    А во-вторых, код, который никто никогда не правил - никому не нужный код. А тот, кто правит, может не знать, что тут везде раскиданы грабли и надо быть осторожным. Даже если это будете вы сами через год-два.
    Ответ написан
    Комментировать
  • Как лучше исполнить алгоритм подбора строительных материалов?

    Adamos
    @Adamos
    С Екселем работал человек, которому было удобнее работать с одной простыней. С базой будет работать код, которому нужна логика, а не наглядность. Корячиться с одной таблицей - дурость. Делайте нормальные формы и забудьте уже этот каменный век.
    Ответ написан
    1 комментарий
  • Как сделать редирект POST запросов с заменой параметров?

    Adamos
    @Adamos
    1. Это GET-запросы.
    2. В настройках nginx есть инструкция rewrite, позволяющая прогнать url через регулярку.
    3. Но, поскольку домены разные, не исключаю, что вам на самом деле нужен вызов cUrl в обработчике этой ссылки.
    Ответ написан
  • В каком формате строка?

    Adamos
    @Adamos
    Нет кодировок, кроме UTF-8, и json_decode - распознает ее! ;)
    Ответ написан
    Комментировать
  • Как отправить поле из формы в Robokassa?

    Adamos
    @Adamos
    При отправке формы обращаетесь по ajax к вашему сайту за получением подписи, подставляете ее и только потом отправляете форму. При этом проверяете валидность того, что ввел пользователь (чтобы он не подставил в оплату заказа ценой 100 рублей плату 1 рубль, например).
    Подпись, собственно, для этого и используется.
    Ответ написан
    Комментировать
  • Как ограничить кол-во запросов в секунду в Telegram боте?

    Adamos
    @Adamos
    1. Проверить, когда начислялся бонус последний раз
    2. Если больше дня назад, то начислить бонус и обновить дату получения

    Если бонусы хранятся в базе, то нужно просто собрать эти два действия в один атомарный оператор обновления.
    Ответ написан
  • PHP-инструмент для создания отчётов в формате pdf/excel?

    Adamos
    @Adamos
    Пишешь на PHP обобщенный вывод данных из запроса в HTML-таблицу.
    Если нужен xls - добавляешь HTML-заголовок с кодировкой, отдаешь этот файл с заголовком, в котором сказано, что это xls-файл, любой офис это спокойно воспринимает.
    Если нужен pdf - скармливаешь ту же таблицу mPDF. Десяток строчек кода.
    Вот и асе.
    Главная трудность в том, чтобы выдавать корректные заголовки столбцов таблицы.
    Но это за вас никакая сторонняя библиотека все равно не сделает - откуда ей знать, что у вас за данные?
    Ответ написан
  • Пожалуйста оцените мое убогое ООП?

    Adamos
    @Adamos
    Во-первых, трудно поверить, что нет кучи готовых решений, разбирающих лог Апача.
    Так что задание, очевидно, учебное, на использование языка и понимание, что такое ООП.
    Так вот, ООП в РНР - это чтобы один раз сделать грязную работу, и больше в нее не заглядывать, используя готовый и по возможности очевидный интерфейс класса.
    У вас же одноразовая портянка, в которой даже имена файлов жестко прописаны в коде, убогие комментарии вместо PHPDoc и вообще ощущение, что ООП вы начали заниматься вчера и считаете его просто возможностью загнать побольше функций в один класс.
    Ну, и результат соответствующий. Вам нужно не исправить это решение, вам нужно позаниматься ООП в РНР некоторое время и прийти к соответствующей парадигме в мышлении. А этот класс можете просто выкинуть.
    Ответ написан
    4 комментария
  • Фильтрация данных, покритикуйте мою реализацию?

    Adamos
    @Adamos
    В PHP можно не плодить функции на каждый чих просто из-за того, что у них разные аргументы. Например, так:
    $input = SmartInput::parsePost([
      'id' => SmartInput::INPUT_INT,
      'sex' => ['type' => SmartInput::INPUT_ENUM, 'enum' => ['male', 'female', 'none'], 'default' => 'none'],
      'birthday' => SmartInput::INPUT_DATE_OPTIONAL,
      'phone' => ['type' => SmartInput::TYPE_PHONE, 'multiple' => true]
    ]);

    Внутри функции - цикл и case.
    Ответ написан
    Комментировать
  • UTF-8 with BOM VS UTF-8 without BOM?

    Adamos
    @Adamos
    На моей памяти ВОМ был действительно нужен только в одном случае: для компиляции UTF-8 исходников в ВижуалСтудии, криворукие программисты которой не справились с автоматическим распознанием кодировки и не осилили сделать настройку, которая позволила бы пользователю задать кодировку принудительно.
    В вебе про этот костыль лучше просто сразу забыть. Если проблемы с ним - значит, вы что-то неправильно делаете.
    Ответ написан
  • Как в PHP сделать Word-документ?

    Adamos
    @Adamos
    HTML-портянка со вставками %ПОД_ЗАМЕНУ%. Любой офис ее откроет, как родную.
    А прогиб именно под M$-офисный формат в данном случае - первый шаг на Темную сторону.
    Ответ написан
    Комментировать
  • Как изменить скрипт, что-бы запустить его CRON'ом?

    Adamos
    @Adamos
    У вас не Таймвеб, случаем? Они упорно держат для cli PHP 5.3.
    Нужно принудительно запускать PHP более свежей версии (например, написав sh-сценарий и прописав в cron его).
    Ответ написан
    2 комментария
  • Есть Какие либо материалы как написать срм систему?

    Adamos
    @Adamos
    Не претендуя на правильность - личный опыт.
    Сайт представляет собой внутренний продукт для работы. Есть куча данных, с ними нужно работать определенным образом.
    Типичная страница - это фильтры выборки и таблица с данными. Да, для их обработки могут применяться какие-то иные интерфейсные решения. Да, страница какого-то конкретного клиента или графики для руководства - это отдельная тема. Однако большая часть рабочих страниц строится именно по схеме "выборка - таблица - работа с ее строками".
    Для типовой страницы потрудился написать мини-фреймворк, который строит форму фильтров и таблицу результатов по описанию в форме объекта с известными полями. Большая часть полей приходит с бэкенда - начальные значения фильтров, заголовки столбцов, данные пагинации. Здорово уменьшает работу руками... и дает пользователю единообразный интерфейс. А также позволяет централизованно добавлять плюшки вроде сортировки по столбцам, итоговой строчки и т.п.
    Для запросов, ответов и прочего здорово подходит встроенный AJAX framework OctoberCMS. Данные удобно представляются моделями, к которым тот же Октябрь позволяет буквально одной строчкой добавить еще и подгруженные файлы. Если нужно дать админу возможность поковыряться в данных - добавляем описание к таблицам БД, и они отображаются на страницах админки.

    Если кто-то хочет попинать велосипед - не стесняйтесь ;)
    Ответ написан
  • Как перенаправить браузер с http:// на file://?

    Adamos
    @Adamos
    Адрес file:// открывается браузером только в двух случаях.
    1. Если это адрес открываемой страницы (непосредственно пользователем открываемой, через меню "открыть" или вбиванием адреса в адресную строку).
    2. Если этот адрес - ссылка на странице, имеющей адрес file://
    Любые другие варианты считаются небезопасными по умолчанию, и без специально выполненной пользователем перенастройки браузера работать не будут.
    Ответ написан