• PHP Почему не равны две строки?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    очень вероятно что одна строка написана в блокноте с выбранным UTF8-BOM, а вторая написана на сервере или на чьём-то ноутбуке где было выбрано Windows-1251, а потом просто скопировано или вставлено в базу как было

    ну и как ты сам нашел в комментах - __debugInfo магический метод может менять вывод var_dump.
    Ответ написан
    Комментировать
  • 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.
    Ответ написан
    Комментировать