• Как сделать подсветку в PhpStorm у tpl файлов php синтаксиса?

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

    @heahoh
    Full stackoverflow developer
    Пишите тесты, вкрячивайте мониторинги, алерт системы, докрутите ci\cd - в общем, занимайтесь техдолгом.
    Ответ написан
    Комментировать
  • Что это означает Warning: 1265 Data truncated for column?

    MasterGerold
    @MasterGerold Автор вопроса
    Проблема решилась таким способом. У меня стоит поле ENUM ''0,'1' а default стоит NULL. И на сколько я понимаю значение NULL длиннее чем 0 или 1. И когда я задаю напрямую 0 или 1 то всё работает. Спасибо Евгению за помощь!
    Ответ написан
    2 комментария
  • На каком дистрибутиве linux php сайт будет быстрее работать?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Скорость работы сайта не зависит от дистрибутива. Она зависит от версии php, от правильной настройки вебсервера, от наличия кеша, от правильности написания кода, от железа, но от дистрибутива в последнюю и не решающую очередь.
    Ответ написан
    1 комментарий
  • Как сделать работающую форму обратной связи, используя только файл .html?

    OtshelnikFm
    @OtshelnikFm
    Обо мне расскажет yawncato.com
    Дело обстоит так: или вам обеспечивают нормальную работу, или пошло оно всё лесом.
    Ответ написан
    Комментировать
  • Надо ли закрывать одиночные тэги в HTML5?

    dom1n1k
    @dom1n1k
    Имеется в виду ставить ли закрывающий слэш вот так <br />?
    По спецификации - не нужно. Закрывающие слэши предполагаются в XHTML, а в HTML (любой версии) они не нужны.
    По здравому смыслу - тоже не нужно.
    Практически - пофиг, работает одинаково, браузеры тут очень толерантны к кодеру.
    Ответ написан
    2 комментария
  • Надо ли закрывать одиночные тэги в HTML5?

    Ankhena
    @Ankhena Куратор тега HTML
    Нежно люблю верстку
    Так как одни пишут - надо, другие нет.

    Предположим, что спецификацию Вы тоже читали и она не показалась Вам надежным источником :)

    Берем код с открытым одиночным тегом и закрытым, чтобы 2 раза не ходить.
    <!DOCTYPE html>
    <html>
    <head>
    	<title>title</title>
    </head>
    <body>
    	<input type="text" name="i1">
    	<input type="text" name="i2" />
    </body>
    </html>

    И проверяем его в валидаторе https://validator.w3.org/nu/#textarea

    Ответ: Document checking completed. No errors or warnings to show.

    Вывод: пишите как больше нравится. Лично мне не нравится мусор в коде, да и лень лишние символы писать.

    прикрепляю результат: f5207edb9d1b40d0986e488213bf335d.png
    Ответ написан
    Комментировать
  • JS include при сборке в gulp как реализовать?

    @Dubrovin
    Используйте Rollup JS. В отличии от вебпак и браусерифи, он собирает файлы без всякого мусора. В отличии от gulp include вы можете использовать синтаксис import, export es2015.
    Ответ написан
    Комментировать
  • Как установить более одной reCaptcha на странице?

    neluzhin
    @neluzhin
    Вы инициализируете капчу с помощью HTML, поэтому она рендерится всего один раз. Чтобы добавить их несколько на сайт, надо инициализировать капчу с помощью JavaScript.

    Для начала, подключайте API таким образом:

    <script src="https://www.google.com/recaptcha/api.js?onload=recaptchaCallback&render=explicit" async defer></script>

    Параметр render со значением explicit говорит, что капча будет инициализироваться не через HTML, а через JavaScript. А параметр onload содержит название JavaScript-функции, которая исполнится в момент загрузки страницы (в нашем случае это recaptchaCallback()).

    Теперь, собственно, надо написать какой-то JavaScript. Выглядеть он будет примерно так:

    var feedbackCaptcha;
    var authCaptcha;
    
    function recaptchaCallback() {
    	feedbackCaptcha = grecaptcha.render('feedback_captcha', {
    		'sitekey' : 'ваш_site_key',
    		'theme' : 'dark'
    	});
    	
    	authCaptcha = grecaptcha.render('auth_captcha', {
    		'sitekey' : 'ваш_site_key'
    	});
    }

    Тут мы создаем функцию recaptchaCallback(), при вызове которой будут рендериться две капчи: одна в элементе #feedback_captcha, а вторая - в #auth_captcha. У первой капчи будет тёмная тема.

    Разместим мы капчу на сайте примерно так:

    <form>
    	<!-- тут какие-то поля для оставления отзыва о сайте -->
    	<div id="feedback_captcha"></div>
    </form>
    <form>
    	<!-- тут какие-то поля для авторизации -->
    	<div id="auth_captcha"></div>
    </form>

    Для чего мы заключаем функции, которые рендерят капчу, в переменные? А нужно это для того, чтобы мы могли индивидуально для каждой капчи исполнять методы. Например, хорошо бы при каждой отправке AJAX-формы авторизации сбрасывать капчу. Сбрасывать мы будем ее так:

    grecaptcha.reset(authCaptcha)

    Также почитайте документацию: developers.google.com/recaptcha/docs/display
    Ответ написан
    3 комментария
  • Vue.js + Wordpress?

    @FullStackAlex Автор вопроса
    Веб-разработчик, электрик, кочевник
    Наконец таки я решил все технические вопросы для внедрения Vue.js в WordPress-Workflow. Долго я к этому шёл. Трудно было совместить freelancing на основе WordPress и WooCommerce и одновременно самообучение Symfony и Vue.js и создание первых реальных проектов на их основе. Но создание первого большого проекта на основе headless Symfony 4 (JSON API) и потребителя на основе Vue.js меня хорошо продвинуло вперед в направлении внедрения Vue.js в WordPress. Почему мне так интересен WordPress/WooCommerce умея делать Backend на основе Symfony? Потому что WordPress делает доступным веб технологии и маленьким клиентам по "демократическим" ценам, при этом всё ещё позволяя фрилансеру хорошо заработать (по крайней мере в Берлине, где я проживаю).

    Так как путь сюда до сих пор никем в интернете детально не описан и я угрохал недели если не месяцы на решение этой задачи прочитывая все статьи и docs с этой темой связанные (освоил для этого даже наконец таки Docker и Nginx и углубил знания в настройке Webpack) и пройдя многие не верные пути (vue-cli, nuxt.js) - я решил создать в течении следующих недель курс на Udemy.com на английском за 20 баксов. Если будет тут достаточно интереса (хотя бы лайков 10 ), то сделаю туториал и на русском. Курс будет содержать настройки Webpack, Docker (optional), Apache/Nginx. Моё решение сохраняет в отличии от nuxt.js все преимущества как WordPress так и Vue.js при этом соблюдая "законы" SEO и Social Marketing (Twitter Cards, Facebook Open Graph итп) и самое главное Hot Module Replacement с PHP/WordPress Templates!!!!!! .
    Я очень разочарован Nuxt.js и расскажу в Tutorial почему он далеко не во всех случаях технически годен и почему с точки зрения open source этот проект не оптимальный исходя из моего личного опыта.

    UPDATE 15.05.2019
    К сожалению руки до туториала так и не дошли. Но создал Github Repo с простым Starter Theme.
    Демо можно тут просмотреть: wue-theme.app
    Пока без доскональной документации. Надеюсь к концу месяца создам.
    Приколы темы:
    -Hot Module Replacement с PHP файлами (если только это интересно можно и тут скачать Webpack config)
    -полная поддержка SEO без Server Side Rendering (SSR). Реализуется это за счёт загрузки данных вместе с HTML в глобальном JS объекте "technomad", вместо дополнительного AJAX-запроса, что не поддерживается гуглом и для чего и нужны все прибамбасы типа Nuxt.js и phpv8/v8js.
    -элементы меню и новости автоматически добавляются через WordPress-Backend.
    -тема устонавливается как и любая другая тема без каких либо дополнительных настроек сервера (нужно скачать всю Repository и скомпремировать "wuetheme" папку в ZIP и тогда можно просто загружать как и обычную тему).
    -Github Repo без данных из демонстрации. Может ещё добавлю функцию установки демо данных.
    -сервер демо во Франкфурте без CDN. Так что во Владивостоке загрузка наверное немного дольше длится будет)) Из Берлина за 600-700ms загружается с VPS.
    -есть ещё много над чем работать (pagination, проверка загруженны ли скрипты и стили плагинов при Ajax route change, пока они загружаются только при инициальной загрузки, но скрипты и стили могут быть на каждой странице иные) , нo даже в данном виде эта тема на сколько я знаю уникальная.
    -тут можно проследить прогресс перестройки моего сайта с этой темой: stage.alexfullstack.dev, там больше клёвых анимаций))
    Пока всё. Have fun :)

    Update 30.05.2019
    Много чего обновил на Github.

    Update 02.06.2019
    Я решил вчерашнюю проблему)))
    Нужно было просто выспаться))
    Завтра подробно опишу и обновлю Github Repo.

    Update 03.06.2019
    -загрузил на Github новую "bulletproof SEO" версию с "Dynamic Rendering Implementation"
    -подробная статья тут

    Update 14.06.2019
    Перенёс сайт на wue-theme.app.
    Демонстрация Github версии тут: starter.wue-theme.app
    Добавил простую Load More Pagination и очистил код.
    Ответ написан
    21 комментарий
  • Есть ли конструктор сложных SQL запросов?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    так от БД пляшите:
    - в аксессе встроенный
    - для MS SQL - SSMS, VS+SSDT
    - DevArt dbForge студии
    - .. по остальный - так гугл в помощь.. билдеров на самом деле до дури.. правда "остальные" чаще уже платные... но в большинстве случаев потриалить вдоволь, братья пираты помогают ))

    ps https://www.jetbrains.com/datagrip/ опять же.. (хотя и платный.. кстати.. у JetBrains все беты всех продуктов - фри ;))).. а так же кроссплатформенные в основном.. ну и https://www.jetbrains.com/toolbox/app/?fromMenu в помощь ;))).. в том смысле что сбилдить запрос и куда то потом его примерить - думаю беты будут в основном вполне пригодны ))
    Ответ написан
    Комментировать
  • Какие best practice разработки с WordPress для новичка?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Во-первых, прекратите спамить всех подряд, такой подход не очень продуктивен.

    Во-вторых, у вас не вопрос. Вопрос - это как правило одна (иди хотя бы одна главная) проблема, которую можно решить одним ответом. Как правило не очень объемным, потому что S из SOLID, как мы знаем, это Single Responsibility Principle. Ваш вопрос его нарушает чуть более чем полностью. Из этого следует, что вам нужно разбить ваш вопрос на множество других. И задавать их желательно по порядку, получая ответы, применяя их в жизни, практикуясь, и только потом переходя далее. Ибо влить в мозг весь этот объем информации за раз можно только в фильме "Матрица", а мы, увы, не там.

    Тезисно пройдусь по пунктам, чтобы прояснить ситуацию.

    Хочу изучить новые инструменты и вообще понять что есть best practice в мире wp сейчас!

    Не существует единой best practice. Есть разные подходы, каждый из них имеет плюсы, минусы и право на жизнь. Все очень сильно зависит от команды, ее размера и опыта, компании и процессов, клиента, проекта, его размера и бюджета и тд. Ну а общие принципы мало отличаются от разработки в целом, будь то Symfony, Laravel, Ruby on Rails и тд.

    Я нашел много интересного, но пока не понимаю как это всё собрать воедино, что зачем нужно, много непонимания

    Это нормально. Почему - перечитайте абзац про Single Responsibility Principle выше.

    1. среду разработки использую PhpStorm, по университетской лицензии.

    Несущественно. PhpStorm отличная IDE, пожалуй лучшая для разработки на PHP в целом, WP или нет - не важно (сам использую именно ее). Но далеко не все могут использовать ее бесплатно по университетской лицензии, многие покупать не хотят, многим не нравится производительность. Стандарт ли это? Для кого как.

    2. для версий кода использую Git, храню локально и на Gitlab.

    Git - это наиболее популярная VCS на данный момент. Само использование системы контроля версий является стандартом, во всем мире разработки.

    3. при разработке пушу через SSH сразу на shared хостинг, а не на локальный сервер (никогда локальным не пользовался, а надо? каким?)

    Использование локального сервера - стандарт. Обязательно, не обсуждается. Пушить на shared - плохая практика (и пушить на прод, и shared). Изучаем про локальные сервера, Continuous Integration и Continuous Delivery. Впрочем, для WP важно понимать, что бОльшая часть проектов будет простая и небольшая, со скромным бюджетом, а там вся эта кухня может быть лишней (смотрим абзац про зависимость best practices от проекта и тд). Поэтому обычного простого деплоя по мерджу в мастер хватит. Гугл в помощь.

    4. работаю под Linux, знаком с консолью, bash, но не понимаю как использовать wp-cli, в чем он удобен?

    WP-CLI это инструмент. Использовать его - хорошо. Чем удобен / полезен поймете когда разберетесь с деплоями, автоматизацией и тд. Но не поймете если не начнете заставлять себя с ним работать.

    5. присматриваюсь к Roots и Bedrock, но не понимаю как к ним подступиться, нужно объяснение что и зачем делать, какие-то инструкции..

    Рано. Очень рано вам к ним присматриваться.

    6. хочу начать использовать composer

    Начинайте. Гуглите, материалы на эту тему есть. Будут конкретные вопросы - задавайте, будем отвечать.

    7. хочу начать писать тесты, PHPUnit?

    Если бы спрашивали за Laravel, то да. Но по WP - забудьте. Думать про тесты в WP вам рано и не нужно. Голову сломаете. Да и проекты, где это понадобится вам пока не светят.

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

    Это не только сейчас и не только про WP. Добро пожаловать в прекрасный мир разработки, где каждый второй с радостью обосрёт инструмент, о котором мало что знает или потому что ему лично он не подходит / не нравится. Вырабатывайте свое личное мнение. WP сам по себе лишь инструмент. Хороший или плохой - не важно. Он решает определенные задачи, и делает это лучше / быстрее / дешевле / проще других.

    Как всё это собрать вместе?

    Постепенно. Шаг за шагом. Слона нужно есть по частям, иначе подавитесь.

    Прошу подробных ответов, по возможности со ссылками и/или инструкциями.

    Это придется накатать книгу, и не одну.

    Хочу учиться.

    Достойное желание. Учитесь, никто не мешает. Гугл, кодекс, кама и другие ресурсы в помощь.

    Бонус: запомните одну простую истину - вы не сможете что-то изучить или освоить, если не начнете с ним работать. Только на реальной практике можно понять и осознать. Можно прочитать 10 лучших книг про ООП (для примера), но пока вы не напишете, выбросите, перепишете несколько раз свой код на ООП, вы его не поймете.
    Ответ написан
    Комментировать
  • Стоит ли покупать коленный стул?

    @AlexeyCarpenter
    Коротко не получится.

    Я изготавливаю коленные стулья по индивидуальному заказу уже несколько лет и столько же сижу на нем(я и моя жена). Мы сделали это основной своей работой. Могу сказать многое как о самом кресле, так и о людях, которые на них сидят. Но мы противники распространяемой магазинами идеи, что этот стул лечит все болезни и в таком духе. Но скажем точно, что сами не пересядем на обычное классическое кресло. Стоит ли покупать? Вот мои рассуждения. Может кому-то пригодятся.

    Однозначно, что сам по себе стул - это лишь приспособление. Он не нужен всем. Допустим, вы испытываете легкий дискомфорт от 3-4 часов работы сидя - у вас немного болит поясница, но эта боль быстро проходит после перерыва. Вы - человек, которого раздражает даже такой "изи" дискомфорт. Не покупайте стул. Период привыкания к нему вызывает еще больший дискомфорт. По своему опыту скажу, что на коленном стуле сидеть невероятно удобно лишь с месяцами и годами. В классическом кресле же, наоборот. С годами от такого кресла могут развиться или усугубиться многие болезни. Тут все индивидуально. У кого-то сразу появляются межпозвоночные грыжи а с ними и защемления нервов. У кого-то с позвоночником все норм, но нарушается кровоток в мягких тканях таза и пошло-поехало. Никуда не денешься от нашей анатомии. Коленный стул за счет наклона сидения ближе к положению при котором мышцы спины не испытывают чрезмерную нагрузку, чтобы удерживать спину прямо. Поэтому тем, кто настолько устал от боли в пояснице, что их не пугает ни период привыкания, ни нестандартная новая посадка, добро пожаловать. Вы не пожалеете.

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

    В течении дня сидящий активно меняет положение тела. Колени после привыкания вообще не жалуются. А мягкие ткани в бедрах и ягодицах испытывают меньшую нагрузку и в них улучшается кровоток(по сравнению с обычным креслом конечно).

    Не стоит покупать стулья, которые имеют очень маленький диапазон регулировок. Мы с женой одного роста, и по логике нам нужны одинаковые настройки. Но ей не удобно на моем стуле, а мне на ее. Отсюда вывод: чем больше регулировок, тем лучше.

    Стул работает в "полуавтоматическом" режиме. Поэтому не поленитесь найти подходящую вам настройку. Лучше, если есть возможность поднять стол, за которым вы работаете сидя за коленным стулом. Так же отрегулируйте высоту монитора, чтобы не наклонять голову и не нависать над столом.

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

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

    Покупайте у тех, кто готов принять возврат в течении 14 дней.

    Лично мне удобно на стуле именно работать. Играть, смотреть кино на нем нет смысла. Мне он помогает сосредоточено и долго работать.
    Ответ написан
    6 комментариев
  • Что такое Injected stylesheets в Chrome?

    У меня оказалось это addblock в хроме. отключил его на домене и заработало
    Ответ написан
    1 комментарий
  • Как лучше организовать рабочее окружение для веб разработчика?

    Ну тут без вариантов - виртуалка.

    Есть такие решения:
    - Задействовать встроенный виндовый WSL. Установив, например, Ubuntu из магазина Windows. Неполноценная система, но для веб разработчика более чем достаточно.
    - Самому накатить систему в Hyper-V, VMware или VirtualBox.
    - Vagrant
    - Docker for Windows. Также его можно вручную поставить в систему во втором способе. В WSL работать не будет.

    В общем, если нужно только окружение, то советую Docker. А если цель получить расширенные знания в настройке сервисов - второй способ. Сам являюсь fullstack разработчиком, и немного развиваюсь в сторону devops. В случае с Docker легко поднимать разные сервисы разных версий для тестирований, особенно, если планируется выйти за пределы apache+php+бд. Например redis, rabbitmq, elastic search, node.
    Ответ написан
    2 комментария
  • Как получить Post запрос с адресной строки?

    Вам стоит изучить разницу между типами запросов. Данные, переданные post запросом, не отображаются в адресной строке. Для этого изпользуетя Get.
    Ответ написан
    Комментировать
  • Умное дублирование строки с селектором в CSS (PhpStorm/WebStorm)?

    pashted
    @pashted
    тыжпрограммист
    1. ставите курсор после скобки
    2. Edit -> Macros -> Start Macro Recording
    3. с клавиатуры приводите все в вид, как вы хотите (например, при помощи стрелок и ctrl+d ) и возвращаете курсор на место (стрелками).
    4. сохраняете макрос Edit -> Macros -> Stop Macro Recording (или красная кнопка справа внизу) с каким-нибудь осмысленным названием.
    5. находите в настройках Keymap раздел по фразе macro и назначаете клавишу (например ctrl+alt+d) на новый макрос.
    6. пользуетесь

    у меня получилось так5c9775a946271717125619.png

    или вот так, с автовыделением продублированного селектора
    5c9776f7b2120711549126.png

    для универсальности можно в начале вызывать кнопку end, чтобы сделать больше дублей последним макросом, выполнив меньше действий
    Ответ написан
    Комментировать
  • Имеет ли смысл создавать интернет журнал на Vue.js?

    @McBernar
    Не будет. Заверения Гугла и Яндекса по этому поводу не соответствуют действительности.

    Делайте SSR.
    Ответ написан
    Комментировать
  • Возможно ли в href добавить ссылку на группу в Telegram?

    Для перехода к диалогу с пользователем:
    <a href="tg://resolve?domain=username">Send Personal Message</a>


    Для перехода в чат (ссылку на приглашение в чат генерируется в настройках группы. Копируем все, что идет после ...joinchat/):
    <a href="tg://join?invite=invite_link">Join Group</a>
    Ответ написан
    1 комментарий