Задать вопрос
  • Как изменить отображение знаков вопроса в место кирилицы?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    rukzen, вообще в классе ДБ, там где у вас идет подключение к базе, сразу за установкой подключения. Где это в ДЛЕ не в курсе, но думаю легко ищется в коде или в гугле.
  • Почему mPDF ломается на списках?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Максим Тимофеев, ставим хорм, далее
    exec('google-chrome --headless --no-sandbox --disable-gpu --print-to-pdf=путь_куда_класть_пдф.pdf --no-margins путь_где_брать_хтмл.html --virtual-time-budget=50000 >куда_писать_лог.log 2>&1');

    будет вам пдф в копейку как при экспорте из хрома в пдф, достаточно создать нормальный хтмл.
  • Почему mPDF ломается на списках?

    ThunderCat
    @ThunderCat Куратор тега PHP
    почему не хром?
  • Как лучше организовать код?

    ThunderCat
    @ThunderCat Куратор тега PHP
    stratosmi,
    Я понимаю, что вы только-только открыли для себя ООП и теперь применяете где надо и где не надо.
    спасибо за комплимент, но я давно вышел из возраста когда от любой новой освоенной фичи впадаешь в щенячий восторг, да и за овер 15 лет в программировании кое-что для себя вывел, чем и делюсь тут.
    В современных языках ООП вообще не стали делать - Rust, Go.
    не надо путать хрен с пальцем, то что в го нет объектов в явном виде не означает что он не объектно ориентированный. Там нет наследования, но вместо него есть имплементация. А для инкапсуляции используются структуры. Если вы не в курсе - ооп не реализация, а парадигма и метод структурирования, а не классы и объекты.

    Что касается конкретно вопроса - в пхп именно реализация ооп в классическом виде(как вы наверно себе это представляете - классы, объекты, наследование...) и тут без классов и нормальной структуры хрен что нормальное напишешь. Молчу о том что это вечный оверхед на загрузку функций которые в данный момент нахрен не сдались + вечное копание в лапше, которую никак нормально не организовать.
  • Как валидировать информацию из mysql бд?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Rsa97, ну, логика построенная на ошибках/исключениях - такое себе... С блокировкой все тоже не так однозначно, было пару критичных падений сервисов именно из-за неснявшейся блокировки(такое случается), было весело (
  • Как лучше организовать код?

    ThunderCat
    @ThunderCat Куратор тега PHP
    stratosmi, у вас есть какие-то аргументы против? Я готов их послушать.
  • Как лучше организовать код?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Евгений Иванов,
    Это модульная система. Это не стандартный проект.
    не вижу противоречия, в любом проекте есть стандартные компоненты, тот же CRUD, работа с хранилищами, авторизация. логирование, маршрутизация и много еще чего, которое вы все равно будете делать, но в любом фреймворке это уже есть, готовое, покрытое тестами и обкатанное. Если вы ССЗБ - флаг в руки, пилите свое. Однако все же советую не упираться рогом в стену и прочитать про архитектуру современных приложений на пыхе, почитать хотя бы что умеют современные фреймворки. Уверен, 80% ваших задач либо можно покрыть компонентами искаропки, либо немного их допилив, ну или готовыми модулями для фреймворка с гитхаба.
  • Как проверить что вкладки загрузились и закрыть их?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    В таком контексте - никак, вы не можете отслеживать евенты соседней вкладки, так как это было бы слишком круто, можно из вкладки моего сайта тырить данные со странички вашего фейсбука/вк. Однако окнами открытыми скриптом на данной странице можно частично управлять, например закрыть.
    ...
    let newWin = window.open(cur_url, '_blank');
    newWin.close();
    ...

    может работать не во всех браузерах.

    PS: не помню или будет работать, но можно открыть 1 вкладку и передавать ей новый локэйшн.хреф.
  • Как перейти по ссылкам на странице по классу по очереди?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    Если вы открываете ссылку, то логично что следующий урл открыть уже не получится, так как страница со скриптом уже закрылась. Разве что все открывать в новых вкладках.
  • PHP PDO почему идет преобразование текста в binary?

    ThunderCat
    @ThunderCat Куратор тега PHP
    кодировку соединения указали?
    Таблица в нужной кодировке?
    пхп - default_charset?
    character_set_connection, character_set_client, character_set_results?
  • Вывод недостающих дат?

    ThunderCat
    @ThunderCat Куратор тега PHP
    arsenaljek, имеется в виду что ключи массива - даты, а значения - цены.
  • Как передать объект БД в класс?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Макс Васильев,
    ой. в App тоже конструктор
    у вас все немного смешалось. Либо конструктор принимает БД, либо отдельный метод, а то так у вас вообще 2 метода делают одно и то же.
  • Как передать объект БД в класс?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Макс Васильев, первый вариант естественно работать не будет вообще, вы передаете в конструктор объект, но в коде класса конструктор не принимает никаких параметров, то есть сначала надо создать объект с пустым конструктором, затем вызвать метод initDB(), тогда по сути это будут очень близкие реализации, разница только методе передачи объекта ДБ внутрь апп. Оба варианта приемлемы, единственно что передача через конструктор это более короткий код и меньше операций. Единственно когда есть смысл использовать 2 вариант(с поправкой) это когда в конструктор нужно передать какие-то другие инициализирующие данные вместо ДБ.
  • Как передать объект БД в класс?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Макс Васильев, это вообще рядом не лежит с вариантом 1.
    Класс передается по ссылке снаружи(то есть создается 1 раз и передается во все объекты где нужен, а не как в вашем случае создается новый экземпляр в каждом новом объекте). Так как это у вас реализовано - классический анитипаттерн.
  • Есть ли событие окончания обработки формы (не ajax)?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    l4m3r,
    вот аяксом, на сервере пропишите после формирования нужного файла:
    header('Content-Type: text/html; charset=UTF-8');
                        header('Expires: Mon, 30 Jul 1997 05:00:00 GMT');
                        header('Cache-Control: no-store, no-cache, must-revalidate');
                        header('Cache-Control: post-check=0, pre-check=0', FALSE);
                        header('Pragma: no-cache');
                        header('Content-transfer-encoding: binary');
                        header('Content-Disposition: attachment; filename='.$name);
                        header('Content-Type: application/zip');
                        readfile($filepath);

    никакой ссылки не нужно, все само скачается по завершении формирования файла на сервере.
  • Есть ли событие окончания обработки формы (не ajax)?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    l4m3r, ничего не мешает сделать это без всяких ссылок, на сервере формируется файл, в качестве ответа аякс запросу отдается что-то типа:
    header('Content-Type: text/html; charset=UTF-8');
                        header('Expires: Mon, 30 Jul 1997 05:00:00 GMT');
                        header('Cache-Control: no-store, no-cache, must-revalidate');
                        header('Cache-Control: post-check=0, pre-check=0', FALSE);
                        header('Pragma: no-cache');
                        header('Content-transfer-encoding: binary');
                        header('Content-Disposition: attachment; filename='.$name);
                        header('Content-Type: application/zip');
                        readfile($filepath);
  • Есть ли событие окончания обработки формы (не ajax)?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    Rsa97,
    Не единственный, можно ещё и вебсокеты прикрутить или лонгпуллы.
    это понятно(хотя крутить их ради одной такой задачи я бы не стал). И вопрос вроде не о отсылке аяксом, а о получении СОБЫТИЯ для остановки спинера.
  • Есть ли событие окончания обработки формы (не ajax)?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    l4m3r, так вопрос вроде не про то
  • Плавное скрытие уведомлений?

    ThunderCat
    @ThunderCat
    m_xplay_official,
    <div id="cn"></div>
    <button id="add">add</button>

    <script>
    	$(function(){
    		$('#add').on('click',function(){
    			let mess = $('<div >new mess</div>');
    			$('#cn').append(mess);
    			setTimeout(function(){
    				fde(mess);
    			}, 3000);
    		});
    	})
    
    	function fde(obj){
    		obj.fadeOut();
    	}
    </script>