За последние 24 часа нас посетил 22571 программист и 1020 роботов. Сейчас ищут 694 программиста ...

Lerma - Драйвера для работы с БД MySQL

Тема в разделе "PHP и базы данных", создана пользователем MouseZver, 23 сен 2017.

  1. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Если в PDO устанавливаешь кодировку UTF-8, то логичней сделать и для обертки mysqli.
    Не вижу этого... не хорошо:(

    а вообще харкодить как то не хорошо... пусть изменяемым параметром будет.

    а что бы еще не говнокодить то вынес бы UTF-8 значение в дефолтную константную переменную интрерфейса и оттуда бы подтягивал если иное не передано пользователем.
     
  5. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    @smitt самой главной кодировкой базы данных MySQL является UTF-8.

    У лермы реализовано внутреннее подключение к базе данных, мы сразу начинаем использовать query/prepare.



    2 вопроса

    кроме юникода, какими кодировками пользуешься при использовании mysqli ? и где ?
     
  6. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Какая кодировка главная решает админ базы) захочет и поменяет)
    А как это связано с захаркоденым значением? o_O Проблема в том что у тебя дырявая реализация. В одном случае ты явно указываешь кодировку в другом случае надеешься на удачу и правильно настроенный сервер.
    + надо писать так что бы у пользователей была возможность значение поменять без редактирования твоего творения.

    Стараюсь везде использовать юникод что бы без гемора жить.
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    Для этого существует https://github.com/MouseZver/Lerma/blob/master/src/Lerma/Configures/Lerma.php

    php на utf-8, а база в другой кодировке ? не вижу смысла.
     
  8. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    и где настраивается кодировка? o_O Чувак, в одной обертке ты захаркодил кодировку, что уже не очень гуд, во второй даже не почесался. Они не равнозначны. О чем спор? o_O не понимаю.

    Ну оставляй тогда раз не видишь. Все равно никто использовать не будет)

    Для инфо:
    https://php.ru/manual/mysqli.set-charset.html
    https://php.ru/manual/mysqlinfo.concepts.charset.html

    З.ы.
    Админы, отключите редирект на форум с ссылок
     
  9. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Это проклятие обходится удалением расширения ссылок, или же до php.ru добавить secure.
    Но мне кажется ты сам об этом знаешь))
     
  10. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Бугага, ты ставишь UTF-8 для mysqli, порыл код) drivers/mysqli.php а не Configures/Lerma.php
    Захардкодено((( совет - вынеси в интерфейс. UFT-8 дефолтное значение для всех драйверов, пусть будет в 1 месте.
     
  11. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    @smitt мне бы хотелось увидеть лично твой достойный аргумент по вопросу - зачем вовсе ставить различные кодировки для MySQLi, нежели Only UTF-8

    А пока лишь из-за неизменяемой кодировки, называть захаркордом глупо с твоей стороны.
    --- Добавлено ---
    httpS://php.net
     
    #36 MouseZver, 25 июн 2018
    Последнее редактирование: 25 июн 2018
  12. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    @MouseZver дык тебя, мы тут обсуждаем надо в UTF-8 переводить или нет? o_O
    Мне не нравится что ты захордкодил параметры которые МОЖНО менять. На сколько помню проблема возникает не со всеми кодировками.
    Если захотят, будут использовать другую кодировку а не UTF. Если можно менять, то должен быть способ это сделать без ковыряния кода. Ты даже в свой конфиг Lerma.php не вынес параметр.

    С точки зрения реализации тоже не гуд. У тебя есть интерфейс который ты не используешь полностью. Там можно описывать не только методы, еще можно указывать константы. Расшаришь дефолтное значение для всех кто реализует интерфейс.
     
  13. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    Это твой достойный аргумент ?
    --- Добавлено ---
    Все нормальные люди пишут php код в кодировке UTF-8 no BOM, а значит и подключение должно быть Only UTF-8
    --- Добавлено ---
    да и по большому счету, тут пинают за использование левой кодировки при подключении
    --- Добавлено ---
    а еще магические методы, рефлектория, и т.д.

    Я кину палку в продаваемые цветы, а продавщица будет подавать в суд на палку за ущерб имущества.
     
  14. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    А что если база данных уже есть и она в кодировке cp1251?
     
  15. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Кинь палку и продавщице.
     
  16. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    В интернете не единый пользователь не смог конвертнуть бд и поделиться со всеми знаниями
    --- Добавлено ---
    больно смиту
     
  17. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Это что прям без емоджи? Да кому он нужен этот ваш интернет.
     
  18. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Давай еще раз)
    1. Правила хорошего кода говорят что хардкодить плохо. Ты захардкодил кодировку.
    2. Ты пишешь обертку для драйверов при этом лишаешь пользователей возможность конфигурировать драйвер без ковыряния твоего кода. Этот charset еще раз МОЖНО менять. Будут менять или нет - не твоя проблема. Ты ограничил функционал. Как еще объяснить, не понимаю... Это плохо. Это не понравится не только мне но и другим. ИМХО. Здесь идет речь не о правильности использования параметра а об твоем искусственном ограничении.
    3. Посмотри как реализованы нормальные обертки Doctrine - раздел Custom Driver Options
    https://www.doctrine-project.org/projects/doctrine-dbal/en/2.7/reference/configuration.html
    или ваш любимый ларавел. Вынесено в общий конфиг, но параметр кастомизируется.

    Поэтому я предлагаю 1. перенести в интерфейс дефолтое значение и дать возможность выбирать - тем ты улучшишь свой код 2. Как вариант сделать общий конфиг как в ларавеле.

    Я - у тебя захардкоден параметр.
    Ты - у меня магические методы и я ковыряюсь в носу.
    Мне не больно, мне интересно когда дойдет что я тебе пишу)))
     
  19. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    Все знают что можно , вот только не вижу аргумента твоего "зачем"

    1. НЕТ
    2. Это не факт
    3. После обновы действительно будет лучше
    --- Добавлено ---
    Давай по русски - не захардкоден / захаркоден, а параметр был опущен из-за лишнего движения.
     
  20. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Т.е. вынос общих настроек на уровень вверх, когда дефолтный параметр для всех драйверов настраивается в 1 месте - ухудшит код?)))
    Мдэ...
    Ок, обновляйся.
    З.ы. я ж не говорю что ты плохо пишешь и код твой отстой. Не понимаю причину спора, я лишь попытался указать на недостаток небольшой.... Помогай потом людям(((

    И где указано что твой вариант правильный?) Мой ближе к первоисточнику, у тебя захар коден. Захары обидятся(((
    --- Добавлено ---
    --- Добавлено ---
    читай жирным выделенный текст. Специально старался.Если драйвер поддерживает, то и обертка должна позволять его настраивать. Зачем будут так делать не твоя проблема. Мы не обсуждаем зачем менять или не менять, мы обсуждаем твою текущую реализацию.
     
  21. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.745
    Симпатии:
    1.319
    Адрес:
    Лень
    https://php.ru/forum/threads/66098/page-2#post-573992

    Хотя бы почитал что пишешь в своих постах.

    Не увидел жирных аргументов. Офф.
     
  22. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Бугага, теперь у меня чувство что я с дебилом общаюсь)
    Отвечаю еще раз
    Ты захардкодил параметр который можно менять. Твоя обертка ограничивает функционал драйвера. Поэтому твой вариант плох.
    Какой тебе аргумент нужен? Потому что принято ставить параметр UTF-8 теперь надо ограничивать функционал? Я тебе привел ссылку как реализовано у других. Зачем ты херней сейчас страдаешь? Я не собираюсь рассуждать правильно или нет использовать что то вместо UTF-8. Не надо перепрыгивать на другую тему. Обсуждаем твою реализацию. В твоей есть косяк.

    Дебил? Зачем передергиваешь слова? Ты утверждаешь что
    Я пишу что захардкоден правильней. Ну опечатался пару раз написал захаркоден, и что? Давай доказательства раз такой умный что утверждаешь захардкоден надо)))
     
  23. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    опечатался, утверждаешь захаркоден)))
     
  24. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.632
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Яшетаю @smitt дело говорит. Тебе всего лишь надо выпустить обновления, и все. Тогда Васе пупкину не придется конертировать свою бд прежде чем юзать твою либу:D
     
  25. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Я кстати тоже @smitt поддерживаю. Ну или не выкладывать в паблик. Проекты игнорирующие pr это жжесть. (накипело)