• Как работать с fortiClient на VPS?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    1. Ваш вопрос не имеет никакого отношения ни к PHP, ни к Laravel (по крайней мере прямого отношения).
    2.
    и скорее всего мне придется еще делать деплой проекта на VPS
    Скорее всего, Вам нужно было уточнить этот вопрос у заказчика, лично.
    3. Вполне вероятно, что у заказчика есть сис. админ, который настроил собственно сервер VPN'а и способен настроить и мост (VPN или что-то ещё) между конечным VPS'ом и сервером API заказчика (и не исключено, что именно он и должен/будет заниматься этим вопросом).
    4. Если этим вопросом должны заниматься принципиально Вы, и единственный доступный вариант это соединение через VPN, то наиболее вероятных вариантов тут два:
    а) VPS бывают не только на Linux'е, ещё и на Windows'е например (насколько я понимаю, Вы используете "FortiClient SSL VPN" именно под этой ОС?)
    б) Возможно есть официальный пакет под Linux (это лучше уточнить у поддержки этого самого "FortiClient"), а так же документация по его настройке.
    Ответ написан
    Комментировать
  • Как отправить два PDF файла на почту?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Берёте любой готовый класс/библиотеку/компонент для отправки почты с PHP, например:
    1. Swiftmailer
    2. PHPMailer
    3. php_libmail

    Насколько я помню, помимо прочего, они позволяют прикреплять любое кол-во файлов к e-mail письму (перед его отправкой).
    Ответ написан
  • При установке composer она потребовала указать путь к интерпретатору какую версию нужно указать?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    У меня на компе openserver недавно скачал все норм
    Если у Вас на компе "OpenServer" (сейчас он называется OSPanel) "и всё норм" - лучше всего воспользоваться встроенной в него консолью. Для этого достаточно запустить его, нажать на его значок в трее (системном лотке) левой или правкой кнопкой и выбрать пункт "Консоль". Запустится программа ConEmu (она же "консоль"), в которой уже корректно указаны все необходимы переменные среди, в т.ч. прописаны пути до PHP и Composer. Причем консоль будет использовать ту версию PHP (и все прочие параметры) которые были указаны в настройках OpenServer'a на момент его запуска, что очень удобно.
    Ответ написан
  • Как замедлить загрузку сайта?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Если Вам для отладочных (собственных) целей - в Google Chrome (я думаю и в его производных тоже) есть настройки скорости загрузку/отдачи, можете там выставить любые параметры и тестировать.

    Если "глобально" - я думаю это можно попробовать реализовать, например, на уровне Nginx'а.

    Если и этого мало - можете попробовать ограничить скорость на уровне сервера, на эту тему так же масса информации, например тут обсуждалось.
    Ответ написан
    Комментировать
  • Как правильно сделать загрузку большой таблицы csv в MySQL средствами PHP (Request Timeout)?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    То, что Вы описали (когда в браузере "Таймаут" а скрипт продолжает работать) скорее всего связано с режимом работы PHP - [F]CGI (или подобным), в этом режиме сервер ждёт какое-то время (обычно секунд 30) ответа от CGI-сервера (PHP) и не дождавшись (точнее по истечению этого времени) выдаёт timeout (который Вы скорее всего и наблюдали).

    На мой взгляд, наиболее простое решение (которое лично я бы рассматривал в первую очередь) - удалённое подключение к БД и загрузка данных. То есть, БД на хостинге а грузите в неё данные Вы с локальной машины, из программы для администрирования БД или из того же локально запущенного PHP-скрипта, это позволит как минимум настроить любой параметр (в т.ч. таймауты, т.к. подобных настроек сделать на хостинге скорее всего нельзя), либо вообще избавиться от понятия "таймаутов" (в случае использования ПО для работы с БД).

    Альтернативный вариант - напишите скрипт, который будет загружать, например по 1000 строк из Excel'я, после чего генерировать ответ (HTML-страницу), которая будет запускать этот же скрипт, с параметром "следующие 1000 строк" и так рекурсивно, до полной загрузки данных. При особом желании можно попытаться отслеживать текущее время выполнения скрипта и при приближении к порогу - соотв. генерировать ответ (как описано выше).

    P.S. Ещё один важный момент - вставка данных в режиме "1 INSERT много VALUES" обычно работает ощутимо быстрее, чем "1 INSERT 1 строка".
    Ответ написан
    Комментировать
  • Как проанализировать файл с данными?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Если Вы не собираетесь "городить огород" - то пишите пишите данные в БД, в последствии с ними будет куда удобнее (и быстрее) работать, в том числе, с помощью запрос(а, ов) посчитать кол-во тех или иных устройств, их процентное соотношение и т.п.

    "Построить диаграмму" можно достаточно просто с помощью Excel'я (и его подобий), предварительно выгрузив имеющиеся данные в этот формат. Если нет Excel'я - можно выгрузить данные в "Google Doc's" или в Excel-online, насколько я помню, там так же были аналогичные функции.

    P.S. Лично я - написал бы небольшой скрипт (например, на PHP), который бы делал несколько запросов в БД и на основе этих данных строил бы диаграмму в нужном мне виде (с помощью готовой библиотеки на CSS/JS).
    Ответ написан
    Комментировать
  • Как вывести такое форматирование на php?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Данные будут генерится автоматом, как сделать чтоб под текст такое форматирование было?
    Возможно я чего-то не знаю, но первый способ который приходит мне в голову, в рамках "PHP" и "что бы универсально было" - это: отрисовывать каждую надпись нужным шрифтом на картинке, потом измерять её ширину, отдельно измерять ширину точки (или нескольких точек подряд, таким же способом, по картинке). Аналогичным принципом можно так же рассчитать и переносы.

    Если у Вас какой-то строго фиксированный шрифт - задача несколько упрощается, достаточно будет измерить ширину каждой буквы нужного размера и где-то сохранить соотв. информацию.

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

    Выше описанные варианты касаются именно "PHP" (хотя и очень условно), но я бы всё-же сделал отображение информации такого характера на уровне HTML/CSS, они куда больше приспособлены для решения таких задач.
    Ответ написан
    Комментировать
  • Какие медиа запросы лучше сделать при верстке сайта?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    То есть, ожидается, что от дисктопной версии до мобильной будет резина, но если блоки уже не могут дальше сжиматься, это начинает выглядеть плохо, то я могу ведь раньше перестроить их, как в мобильной версии?
    Вы можете сделать перестроение хоть на каждый пиксель ширины (высоты и т.п.), или указывать диапазоны (min/max). Если я правильно понял Ваш вопрос - Вы можете сделать перестроение отдельно взятых элементов начиная с разрешение в котором [как Вы это обозначили] "блоки уже не могут дальше сжиматься", т.е. адаптировать эти самые блоки "отдельно" от других элементов.

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

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Вот тут уже обсуждали очень очень похожий вопрос и ответ на него. Я думаю, что объявить "абстрактное свойство" - никак. Возможно Вам поможет либо "классическое" наследование, либо Трейты.

    Пример:
    trait Trait1
    {
        protected $x = 10;
    
        abstract public function y();
    }
    
    class Class1 {
        use Trait1;
    
        public function y() {
            print $this->x;
        }
    }
    
    $class1 = new Class1();
    $class1->y();
    Ответ написан
    Комментировать
  • Как расположить элемент flex-контейнера по центру?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    8 комментариев
  • Как обнаружить скрытый символ в разметке?

    Wolfnsex
    @Wolfnsex Куратор тега HTML
    Если не хочешь быть первым - не вставай в очередь!
    Так как ни один редактор, который есть у меня на компе просто не видит его. Может быть я как-то не так ищу?!
    Видимо так. У меня Notepad++ видит его, выглядит он вот так: 5cbdf017b1b40962463015.png

    К CodePen'е он кстати тоже отображается (у меня по крайней мере). В Notepad++ его видно даже с настройками "по умолчанию", но, вы дополнительно можете включить отображение всех символов: Меню -> Вид -> Отображение символов -> Отображать все символы. Подобный режим есть во многих других редакторах, например, этот символ так же отображается в PhpStorm (и наверняка во всех остальных IDE от JetBrains).

    Сам по себе символ, который Вы обозначили - это т.н. "мягкий перенос" и обычно такие символы в HTML-коде записываются кодом. Подробности тут.

    P.S. Если у вас задача состоит в том, что бы "найти" и удалить все подобные символы "руками" - достаточно открыть соотв. файлы в Notepad++ (или попытаться включить в вашем редакторе отображение непечатаемых символов).
    Ответ написан
    Комментировать
  • На что обратить внимание JavaScript разработчику при изучении PHP?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Хочу расширить навыки
    Я думаю, прочтение вот такой книги (хотя бы частями или частично) позволит Вам расширить свои навыки как конкретно в PHP так и в веб-разработке в целом. Лично на мой взгляд - написана очень неплохо и в основном "по делу".

    Знания "синтаксиса" ("нового языка") - особой ценности из себя не представляют, гораздо важнее иметь глубокое понимание максимального кол-ва процессов и механизмов с которыми вы так или иначе работаете...
    Ответ написан
    2 комментария
  • Как установить php 5.2.6 на Ubuntu 18.10?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Попробуйте поставить из PPA, один из вариантов описан тут.

    Вариант про "исходники" уже озвучили выше.

    Если ни один из выше описанных вариантов Вам не подойдёт, как альтернативный вариант - можно установить с помощью Docker'а, там этого добра как грязи, каких угодно версий и сочетаний.

    P.S. Насколько я помню, в бубунтах PHP ставится либо: sudo apt-get install php5.2 либо sudo apt-get install php52, т.е. без указаний 3-ей цифры в версии (возможно я ошибаюсь).
    Ответ написан
    Комментировать
  • А что вы используете кроме Bootstrap 3,4 из css-каркасов и компонентов, какие-то комплексные решения?

    Wolfnsex
    @Wolfnsex Куратор тега CSS
    Если не хочешь быть первым - не вставай в очередь!
    Лично вы что используете из комплексных решений такого рода кроме Bootstrap?
    Лично я - такие решения не использую вообще. За редким разве что исключением, и только в админке (но там отлично справляется любой вариант, , например тот же Bootstrap). Но, через мои руки не редко проходят проекты которые используют подобных технологии далеко за пределами админки.

    Альтернативы страпу: Bulma, Ui kit, Foundation (судя по описанию, этот вариант подойдёт Вам больше всего).

    UPD. В ранее ниже расположенном здесь ответе наткнулся на ссылку на Semantic UI. Немного поковырял его, прочёл пару статей... Думаю этот кандидат так же достоин внимания. Из достоинств - очень широкий функционал, включая различные кнопочки, формочки и тому подобное, а так же большое количество расцветок и форм элементов. Есть даже кнопки с индикатором загрузки, что не может не радовать.
    Ответ написан
    Комментировать
  • Как удалить подсказки из Google Chrome?

    Wolfnsex
    @Wolfnsex Автор вопроса
    Если не хочешь быть первым - не вставай в очередь!
    Коллеги, всё оказалось несколько иначе, чем я думал... Некто, помимо простого просмотра сайтов так же насоздавал мне закладок (уж не знаю, по ошибке или умышленно), которые конечно же я не видел (т.к. они находятся за пределами панели закладок). Удалив оттуда с пол сотни "мусорных" записей - проблема решилась. Всем большое спасибо за внимание.

    P.S. Остальную, "нормальную" историю, судя по всему можно удалить через [Shif] + [Del] (а если не удаляется, скорее всего, эта информация берётся именно из закладок).
    Ответ написан
    Комментировать
  • Хочу начать изучать Laravel, ответите на несколько вопросов?

    Wolfnsex
    @Wolfnsex Куратор тега Веб-разработка
    Если не хочешь быть первым - не вставай в очередь!
    1) На сколько удобны Homstead + Vagrant, которые они рекомендуют использовать? Посмотрел информацию по его установке, использовании. Разве это удобнее всем привычного openServer?

    Насколько удобен конкретно именно этот стек, и насколько он удобен будет лично для Вас - сказать затрудняюсь, но в общей сложности, использование "родной" среды при разработке приложения - практика весьма правильная. Думаю что в данный момент, большинство моих эпитетов на тему "почему оно так и зачем" Вам будут не очень интересны, но, есть простой пример из реальной жизни: в *nix, чаще всего, файловые системы чувствительны к регистру имён файлов, в Windows [NTFS] (и OpenServer в частности) - такой чувствительности нет, что влечёт за собой потенциальные ошибки в самый неподходящий момент (когда Вы будете выгружать сайт на хостинг) и исправить их "по быстрому" удаётся не всегда, по этому, я бы рекомендовал использовать "родной" Linux при разработке. Какой стек взять - сакрального значения не имеет, мы используем: Docker (Hyper-V), VirtualBox + настроенную самостоятельно вирт. машину и различные другие варианты (среди которых, OpenServer проскакивает крайне редко).

    2) Прямо из коробки Laravel поддерживает Vuejs, но посмотрев их курсы на Laracasts и ещё пару примеров компонентов для него, мне показалось, что он не совсем подходит для того, чтобы делать на нём те же слайдеры, системы частиц и подобные вещи.
    VueJS - это JS фреймворк, волей судьбы "встроенный" в Laravel. Как мы знаем, JS относится к области вёрстки, что в целом с фреймворком серверным связано крайне слабо. Какие элементы в вёрстке использовать лично Вам - дело - лично Ваше. Из собственного опыта могу сказать, что мы в своей работе не гнушаемся ни VueJS, ни jQuery, ни различными готовыми слайдерами и вообщем всем, что может быть уместно в рамках конкретных требований конкретного проекта. По сему - я думаю Вам не стоит забивать себе этим голову. Насколько и чем хорош VueJS - можно узнать из массы уроков по оному.

    Вообще не понравилось, что в HTML-разметке вставляются ивент-слушатели, как в стандартном JS прям (@click, onclick). Мне это напомнило встраивание CSS прямо в тэги. Мне нравится в jQuery то, что все ивенты вешаются прямиком в скрипте, не заглядывая в HTML-разметку.
    На вкус и цвет все фломастеры разные. Какой подход "лучше" - покажет только время. В данный момент, мы используем оба из них и особо не паримся по этому поводу.

    Я просмотрел вакансии на разных сайтах, чтобы понимать, какой стэк технологий нужен работодателям, и в требованиях я вообще не нашёл, что им нужен jQuery, только Vuejs. Отсюда и вопрос, то есть мне нужно переписать свои слайдеры, системы частиц под Vuejs? Часто встречал сообщения о том, что переплетать эти две технологии плохая затея. Либо то, либо то. Посмотрел предложенные готовые слайдеры, вообще не впечатляют.
    Работодателю нужны сотрудники способные принимать решения и выдавать конечный продукт. Остальное особого значения не имеет. Если Вы сможете выдавать продукт нужного качества в рамках поставленных сроков, а потом поддерживать этот продукт в надлежащем состоянии - поверьте мне, работодателю будет совершенно всё равно, на как и на каком языке Вы это делаете, хоть на С++ бекенд пишите.

    3) Хорошим ли является планом, чтобы сделать воображаемый интернет-магазин для обучения и освоения Laravel? Или как лучше изучать эту технологию от легкого к сложному? Всегда была проблема с тем, чтобы структурировано изучать ту или иную область разработки. Чтобы не тупо копировать, а понимать, как всё устроено и как работает.
    Что бы понимать что-то структурно - нужно понимать истоки. В области веб-разработки таковыми "истоками" могут являться например, протокол HTTP, фундаментом которого будет протокол TCP/IP, в основе которого лежат другие технологи... чем лучше Вы будете понимать как всё работает изначально, и в результате чего появилась, например, такая парадигма как MVC, как работает composer так далее, далее, далее... когда Вы будете всё это понимать - в голове будет складываться целостная картина происходящего, а не обрывки каких-то знаний. Разработка интернет-магазина в этом процессе, глобально, погоды не сделает, но какой-то опыт безусловно даст, главное, перед тем как будете разрабатывать собственный магазин - найдите какой-то уже готовый и постарайтесь в точности повторить его функционал, начиная от восстановления пароля заканчивая тем, как в корзине пересчитывается цена при изменении количества товара.
    Ответ написан
    Комментировать
  • Как стримить десктоп со звуком в локальную сеть(Linux)?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Стрим будет на 30+ клиентов.
    На счёт 30+ клиентов - не могу точно сказать, но демонстрировать рабочий стол так же можно в:
    1. TeamViewer (и передавать звук тоже, в режиме конференции в т.ч., мы обычно его используем при проведении закрытых уроков)
    2. Skype (в конференции тоже, передачей звука можно что-нибудь придумать)
    3. Tox (версия под Windows умеет передавать рабочий стол, под Linux'ом ещё проверить не успел, звук тоже)
    4. VNC
    5. Есть масса различных расширений для хрома позволяющих демонстрировать экран, возможно среди них Вы что-то найдете для себя
    6. Как уже упоминал автор выше - OBS, его прелесть в том, что можно не просто транслировать рабочий стол, но и настроить сцену (или несколько) и в качестве клиента использовать любой современный браузер. В качестве сервера (ре)трансляции можно использовать Nginx. Такой вариант мы обычно используем для проведения публичных трансляций или записи "под ютуб".
    Ответ написан
    8 комментариев
  • Как заблокировать одновременное редактирование записи в БД на laravel?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    Как реализовать запрет на одновременное редактирование записи в БД MySQL c помощью LARAVEL?
    Добавить флаг (колонку в БД), подобный функционал был придуман и применяется ещё с лохматых годов, соотв. при попытке начать редактирование записи - этот флаг должен проверяться.

    Чуть более сложный вариант - блокировать запись на уровне БД, не знаю насколько он Вам подойдёт и нужен ли вообще, но такой вариант тоже есть.

    А в браузерах android не отслеживается закрытие вкладки!!!
    Я Вам по секрету скажу, закрытие вкладки даже в браузерах "не адроид" не всегда можно отследить и всецело полагаться на что-то подобное я бы не стал. Один из вариантов "надёжного" отслеживания наличия "клиента на линии" - выглядит примерно так:
    1. Поднимаете сервер веб-сокетов, он же будет контроллировать блокировку той или иной записи в БД
    2. Каждые N-секунд отсылаете клиенту PING-запрос, если клиент не ответил (X раз подряд, и/или в течении Y секунд) сбрасываете блокировку (ну и можно заодно попробовать клиенту уведомление отослать, или прямо у клиента в браузере повесить индикатор активности соединения). Нечто аналогичное используют множество сетевых сервисов, например IRC- серверы/клиенты.

    P.S. Это наиболее простые и эффективные варианты. Непосредственного отношения к Laravel они не имеют и с учётом контекста вопроса - и не должны.
    Ответ написан
  • Какой уровень MySQL/MariaDB нужно знать среднему php-программисту?

    Wolfnsex
    @Wolfnsex
    Если не хочешь быть первым - не вставай в очередь!
    PS: Страх ещё вызван тем, что на одном из прошлых собеседований меня начали спрашивать, что такое PK и индексы. Ну я ответил в общем. Потом, он начал говорить, что этого недостаточно, нужно знать как это устроено на уровне файлов и чуть ли не исходников субд. Это действительно, я должен знать подобные тонкости?
    Чёткого деления на "Jun/Mid/Sen" - нет и быть не может по определению. Технологий столько, что знать их все кому-либо не под силу. К тому же, технологии развиваются очень быстро... Соотв., компаний так же много и требований к должности у них тоже много. Тот, кто сейчас работает на должности ведущего разработчика в конторе типа ООО "Шаражмонтажсайтпродаж" (условно), вряд ли сможет претендовать на должность хотя бы мидла в какой-то серьёзной, солидной фирме.
    Ответ написан
    2 комментария
  • Элегантное решение для проброса значений в функциях php?

    Wolfnsex
    @Wolfnsex Куратор тега PHP
    Если не хочешь быть первым - не вставай в очередь!
    Можно как-то элегантно избавится от if else в данном контексте?

    Можно:
    Заменить свой
    if ($value)
      $this->saver->save($name, $value);
     else
      $this->saver->save($name);

    на
    $value ? $this->saver->save($name, $value) : $this->saver->save($name);
    но как верно подметил г-н DevMan, - "огороды лучше не городить", т.к. код в первую очередь должен быть читаем и понятен, а уже после - "красив".

    P.S. И, да, ещё один важный момент. В современных стандартах принято оборачивать тело циклов и условий в фигурные скобки, даже если оно состоит из одной строки...
    Ответ написан
    Комментировать