Задать вопрос
  • CMS или Framework?

    Sanes
    @Sanes

    К тому же не совсем понимаю, если выбрать в пользу фреймворка, то вроде как JS говорят лучше, чем PHP (не знаю почему)

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

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    если в двух таблицах имеются одинаковые данные - это плохая таблица. В Вашем случае если в таблице Cities уже есть названия городов - то в Competition должны быть cities_id, а не те же названия городов, которые уже есть в Cities. Так что видимо прежде чем продолжить следует привести таблицы к нормальному виду.

    Пытался связать, но выводит ошибку,

    Ту самую? Единственную о которой все подумали?
    Вы бы показали как пытались связать и какую ошибку выводит ибо весь остальной текст не нужен вовсе. Вы описали все, кроме того что надо для решения проблемы. Обычно код вызвавший ошибку и сама ошибка уже содержат путь решения.
    Ответ написан
    6 комментариев
  • Трудно ли будет перенести сайт с yii2 на yii3?

    Decadal
    @Decadal
    Сначала вы подождете stable yii3, потом php 8, а потом ИИ будет писать программы вместо нас. Делайте на том что есть сейчас. Оно рабочее.
    Ответ написан
    Комментировать
  • Как сделать подсветку в PhpStorm у tpl файлов php синтаксиса?

    nazarpc
    @nazarpc
    Open Source enthusiast
    File -> Settings -> IDE Settings -> File types -> PHP files
    Добавляете в список нужное расширение файла по аналогии.
    Ответ написан
    1 комментарий
  • Как перехватывать и расшифровывать TLSv1.2?

    @zano3adev
    Web Dev
    Недавно была задача, анализировать и подменить трафик(TLS) windows приложения.
    1. Составил список доменов(использовал wireshark) к которым идут запросы через TLS.
    2. Добавил домены в hosts с локальным ip.
    3. Создал самоподписанные сертификаты на каждый домен.
    4. Добавил сертификаты в доверенные корневые сертификаты.
    5. Поднял вебсервер(nginx) с сертификатами как прокси и вел логи всех запросов.
    6. Поменял некоторые данные отдаваемые вебсервером.

    По теме: sslstrip, sslsniff
    Ответ написан
    1 комментарий
  • Сервисный слой в yii, как правильно?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Зачем использовать framework если им не пользоваться? Я часто сталкиваюсь с доработкой готовых проектов на yii и поражаюсь. Когда ставится framework а потом пишется чистый php и хорошо еще если с использованием ООП. Зачем? Если не удобно работать с framework зачем его использовать? Заказчик настаивает? Ну тогда надо его использовать, а не делать вид.
    Не нравится yii - попробуйте laravel, symfony, напишите свой в конце концов, но не городите подобное. Тем более что как правило это продиктовано не структурой framework, а его незнанием на должном уровне.
    Ответ написан
    Комментировать
  • Особенности сравнение дат в php?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    string date ( string $format [, int $timestamp = time() ] )

    Поскольку вы неправильно используете функцию date(), сравниваются просто строки. Строки сравниваются посимвольно. Ноль меньше, чем два, поэтому сравнение немедленно возвращает true.

    Правильно сравнивать даты так:
    $first = DateTime::createFromFormat('d.m.Y', '01.01.2016');
    $second = DateTime::createFromFormat('d.m.Y', '25.12.2015');
    var_dump($first < $second);

    Или так:
    var_dump(strtotime('01.01.2016') < strtotime('25.12.2015'));
    Ответ написан
    Комментировать
  • Легаси-монстр. Как побеждаете?

    @RidgeA
    Немного банальностей:
    1. Бизнес не даст ресурсов на переписывание проекта с 0: время и большие риски
    2. Бизнесу как правило все-равно какое говно там крутится, лишь бы деньги приносило.
    3. Если более-менее адекватное руководство - нужно донести идею постепенного рефакторинга кода по мере необходимости в процессе фикса багов и разработки новых фич и тем самым аргументировать что на разработку новых фич/фикс багов нужно больше времени.

    Как я бы делал:
    1. Тесты на существующие функции (если возможно, видел методы в контроллерах с мешаниной вызовов методов моделей, созданием DTO и сохранением их через репозиторий, прямых http-запросов и запросов в бд на 1000+ строк, покрыть такое тестами - невозможно)
    2. Составить план рефакторинга, где отметить что и где надо сделать, коротко, в основном для команды разработчиков.
    3. Постепенно рефакторить старый код по мере взаимодействия с ним.
    4. Новый код - писать сразу правильно, для взаимодействия со старым кодом где нет возможности/времени его переделать - делать какие-то адаптеры, что бы не распространять токсичный код.
    5. Как оперативная мера защиты от SQL иньекций можно поставить что-то вроде этого https://github.com/nbs-system/naxsi
    6. Мониторинг кода, который не используется - pinba.org , по мере обнаружения такого кода - удалять безвозвратно (в крайнем случае есть VCS, я надеюсь). Начать с более высокоуровнего кода - контроллеры, напримерю. Плюс IDE в этом могут помочь и grep.
    7. Как вариант - новые фичи можно пилить в отдельном проекте (v2), крутить оба и постепенно переходить на новый, со временем старый (v1) выкинуть (и начать делать новый - v3 :-) )
    Ответ написан
    3 комментария
  • Как в yii2 сделать чтобы по /backend/web/index.php не открывалась админка?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Как в yii2 сделать чтобы по /backend/web/index.php не открывалась админка?

    выключить сервер

    чтобы по этому адресу выдавало 404 а по site.ru/admin приводило к админке?

    При чем тут yii и почему бы вместо 404 не сделать просто переадресацию на site.ru/admin
    Ответ написан
    5 комментариев
  • Как выглядит современный процесс верстки?

    HamSter007
    @HamSter007
    HTML/CSS верстальщик
    Меня, вероятно, закидают тапками, но я так же как и Вы и как Юпитер Макс верстаю старым дедовским методом)

    Но есть и и другие современные методы.

    + С помощью сборщиков: gulp (уже устарел) , webpack.
    Быстро собирают все файлы, минимизируют css\js файлы, оптимизируют картинки, установка необходимых бибилиотек и прочее.

    + С помощью препроцессоров: css - sass\scss\less, html - pug.

    + С помощью js фреймворков: vue, react, ...

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

    Препроцессоры, как по мне, тоже не совсем удобные инструменты. Автопрефиксы есть в emmete любого редактора кода, т.е. уже не нужно писать\вставлять дополнительные sass\less ф-ии и прочие возможности препроцессора (миксины, экстенды, переменные, ... ) проще и быстрее написать ручками простым css)

    Это все лично мое мнение.
    Ответ написан
    23 комментария
  • Как сделать фильтр по неизвестным атрибутам?

    @eyeless_watcher
    В последнем запросе вы пытаетесь найти строку, у которой `attribute_id` одновременно равно и 1, и 2.
    Вам же нужно найти разные строки в product_attribute_value с разными условиями, самое простое, что приходит в голову - подзапросы с exists:
    select * from products where active = 1
    and exists (select from product_attribute_value where product_id = products.id and attribute_id = 1 and value = 10)
    and exists (select from product_attribute_value where product_id = products.id and attribute_id = 2 and value = 15)
    Ответ написан
    Комментировать
  • Что будет за попытку взлома вк?

    alestro
    @alestro
    Тут нет состава ни 138 ни 272. Состав 272 ст. - материальный, то есть наличие общественно опасных последствий - обязательный признак объективной стороны данного состава. Диспозиция 272 ст. предусматривает что данные последствия заключаются в следующем: уничтожении, блокировании, модификации либо копировании компьютерной информации. Таким образом, если данные последствия не наступили, то нет объективной стороны, без объективной стороны нет состава. Что касается 138, то предмет - охраняемая законом тайна, объективная сторона выражается в любых противоправных действиях, которые нарушили эту тайну. Т.к. тайна не была нарушена, то нету объективной стороны, а значит нету и состава.
    Ответ написан
    Комментировать
  • Какой язык программирования выбрать для написания сложного телеграмм бота?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    1. Любой язык в который умеете
    2. После выбора языка можно загуглить библиотеки для телеграмма или воспользоваться чисто их api (у них там все подробно написано)
    3. читать документацию и учиться программировать
    Ответ написан
    Комментировать
  • Как записать текст из команды Telegram в переменную?

    @cashncarry
    нагуглили
    1. Можно воспользоваться FSM и библиотекой aiogram, тогда бот будет ждать "особое" сообщение от пользователя. Почитай Машина состояний

    2. Через БД или Redis метить нажавшего на команду. Потом проверять, нажимал ли на команду и выдавать результат.

    3. Принимать текст введенный после команды. "/voice озвучь этот тест"
    arg = message.get_args()
    Ответ написан
    Комментировать
  • Как сверстать файл из psd?

    MaryT
    @MaryT
    IT люблю
    Вы видимо плохо понимаете как происходит сам процесс верстки. Разумеется... надо самому все верстать!

    То есть надо вытаскивать все картинки из получившегося после "сохранить в web" файла и самому все верстать

    Нет.Вы должны вытаскивать картиночки уже из psd. Вы открываете psd, выбираете слой с картиночкой и сохраняете его в png/jpg. Сохранять картиночки/иконочки/узорчики все отдельно в папку.
    А верстать все ручечками надо!
    В интернете просто огромное кол-во туториалов/видеоканалов где все просто пошажачно рассказывается, любому школьнику понятно. Любой запрос на ютюбе - верстка сайта из psd приведет вас к правильным действиям и решению
    Ответ написан
    Комментировать
  • Принудитальная очистка памяти PHP?

    @egorinsk
    Если у вас есть утечка памяти в PHP. то это, как правило не баг PHP. Наверняка где-то в библиотеке, которую вы используете, есть лог или кеш и он копится, не освобпждаясь (был случай, например, когда все SQL-запросы логгировались в массив, который никогда не очищался).

    Например, есть такая библиотека phpQuery, когда-то я пробовал ей пользоваться, она потребляла память в немерянных количествах.

    Также утекать могут расширения вроде DOM.

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

    Хочется послать также лучей ненависти всем, кто, не разобравшись в проблеме, пишет глупости вроде «PHP течет». В PHP система управления памятью лучше чем в других языках, так как в нем есть и Copy-on-Write, и счетчик ссылок, и сборщик мусора. Не во всех языках это доступно.
    Ответ написан
    Комментировать
  • Как правильно настроить связку PhpStorm + OpenServer + Composer?

    iiifx
    @iiifx
    PHP, OOP, SOLID, Yii2, Composer, PHPStorm
    Как-то уже показывал тут, но напишу еще раз.

    Настраиваем path OpenServer
    eded6-clip-61kb.png?nocache=1

    Добавляем закладку на PhpStorm
    67a2d-clip-33kb.png?nocache=1

    Запускаем PhpStorm через OpenServer
    26de1-clip-23kb.png?nocache=1

    Используем встроенную в PhpStorm консоль и получаем удовольствие от работы
    d4094-clip-30kb.png?nocache=1
    Ответ написан
    16 комментариев
  • Как хранить дату по умолчанию в MySQL или почему DateTime('0000-00-00') показывает чушь?

    TheCreator
    @TheCreator
    Бездельник
    Любое поле, которое может быть введено, а может и не быть должно иметь значением по умолчанию null.
    Ответ написан
    Комментировать
  • Как хранить дату по умолчанию в MySQL или почему DateTime('0000-00-00') показывает чушь?

    sivabur
    @sivabur
    Заблокировали просто так!
    Использовать NULL.
    Ответ написан
    Комментировать