• Куда пропал EAP PhpStorm?

    ajaxtelamonid
    @ajaxtelamonid
    Laravel
    Все, цикл разработки 3.0 завершился, IDE зарелизилась, услуги бесплатных бетатестеров не нужны.
    Теперь только покупать или ждать полгода начала EAP 4й версии.
    Ответ написан
    1 комментарий
  • Могут ли как-либо достучаться до файла в не public папке?

    delphinpro
    @delphinpro
    frontend developer
    Если сервер настроен как положено, то никто не достучится.
    Как положено — это когда DOCUMENT_ROOT указывает именно на папку public, а не используются хаки для установки laravel на shared хостинг
    Ответ написан
    2 комментария
  • PhpStorm, как определить своё значение свойства?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Думаю что в коде какая-то ошибка и шторм правильно ругается (неправильно настроены конфиги или класс для второй базы данных).
    Самый простой способ - перед запросом сохранить $this->db2->database в переменную и над ней написать phpdoc с описанием, что она возвращает, потом уже подставлять $databaseName2 в запрос.
    /**
     * @var string $databaseName2
     */
    $databaseName2 = $this->db2->database;

    Замечание по коду - не надо так подставлять значения в строки, лучше использовать sprintf() или подставлять только итоговую переменную, а не обращение к объектам по цепочке.
    Ответ написан
    7 комментариев
  • Можно ли создать веб приложение без базы данных?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Можно
    Ответ написан
    Комментировать
  • Как добавить запись в определенный столбец MYSQL?

    rozhnev
    @rozhnev Куратор тега MySQL
    Fullstack programmer, DBA, медленно, дорого
    UPDATE table_name SET control = 'what_you_need_here' WHERE id = 1;


    https://habr.com/ru/post/123636/
    Ответ написан
    Комментировать
  • Как лучше всего организовать разработку, деплоинг и тестирование продуктов для 1с-Битрикс?

    rpsv
    @rpsv
    делай либо хорошо, либо никак
    Git и BitrixVM.
    Заводите 2 сервера/ветки: прод (ветка master) и тест (ветка develop). В идеале еще + предпрод и на каждую фичу свою ветку.
    Изменения в структуре БД переносите миграциями также в гите.
    Собственно прод - он и в африке прод. На тесте делаете какие-то правки, после вливается в мастер. Ну а на бою уже делаете пул и накатываете миграции.

    Чтобы совсем хорошо: для каждой ветки (либо на локальной машине) можете поднимать свой докер с общей тестовой БД, чтобы ресурсы сэкономить.

    Если какие-то обработки еще нужны (предпроцессоры всякие), то можете подключить к этому https://deployer.org
    Ответ написан
  • Что использовать для PHP разработки? Vagrant, Ansible или Docker?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Это зависит от того, что, куда и как вы будете диплоить.
    По хорошему чем ближе окружения для разработки к продакшну - тем лучше.

    Лично я работал со следующими связками:
    - Vagrant + bash provisioning
    Этот способ с самым низким погором вхождения, но он очень требователен к качеству кода И процесса установки и обновления.

    - Vagrant + ansible provisioning
    Этот способ по сути включает в себя bash provisioning, но в структуре ansible. Работая в команде будьте готовы к тому, что провизионирование далеко не у всех будет нормально работать и это будет источником вашей головной боли. Если базово подтянуть bash у сотрудников еще не вызовет вопросов, то с ansible это процесс будет сложнее.

    - Docker
    Чистый докер требует далеко не маленькой компетенции. В команде я бы настоятельно не рекомендовал его использовать без дополнительных обвязок. По сути вам прийдется сделать свой docker-compose.

    - Docker + docker-compose
    Считаю оптимальным решением для dev окружения при работе как в команде, так и без.
    Ответ написан
    8 комментариев
  • MVC php на пальцах?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ох...

    Model View Controller. Да ну его, ему уже 45 лет (придумали в 79-ом году). Давайте лучше про Model View Adapter погокорим. это то что все используют в популярных фреймворках последние лет так 10 так точно.

    mvc-mvp-mvvm-6-638.jpg?cb=1375170002

    Вообще в этом всем важно не только то, что каждая буква обозначает, а как они друг с дружкой связаны.

    View - это не только HTML, но и вообще представление в целом, а так же логика его формирования. Шаблонизаторы, фильтры, различные функции/объекты помогаютщие нам сформировать view (например форматирование дат, сериализаторы и т.д.) В подавляющем большинстве случаев "представление" наших данных - это HTTP запросы и HTTP ответы. HTML - э то лишь часть HTTP ответа.

    Model - Это целый слой, который может быть представлен в виде кучи отдельных объектиков, структур и т.д. Его задача - делать дела и хранить/менять состояние системы. Тут легко запутаться потому что термин "модель" много чего значит. Воспринимайте его как "слой логики" а не конкретные объекты. И да - база данных и прочая чушь - это детали реализации этого слоя. "не важные штуки" словом. Туда же и ActiveRecord, ORM-ки всякие. Это деталь реализации и все остальные чуваки (view и controller) о них знать ничего не должны (хотя иногда могут в целях упрощения).

    Controller или адаптер. Это опять же не обязательно один объект. это может быть цепочка адаптеров (еще называют фронт-контроллером, middlewares и т.д.). Его задача весьма простая. Получаем представление данных на входе (HTTP запрос), определяем что надо делать, и просим модель что-то сделать (ни в коем случае не меняем ничего самостоятельно в контроллере, он только просит). Потом мы можем попросить модель вернуть нужный нам кусок состояния, и попросить View сформировать представление (HTTP ответ).

    Как-то так. В целом же это я сейчас описал "идеальный мир". Вся суть этого подхода - разделение логики презентационной и логики приложения. Зачем это надо? что бы было проще жить! Обычно UI приложения или способы взаимодействия с ним меняются почаще логики или как минимум в разные моменты времени. Адаптеры в этом случае служат промежуточным слоем, они ничего сами не делают, это "переводчики". Они просто переводят то, что сказано в запросе в язык понятный приложению и обратно.

    Но на начальной стадии можно слегка нарушать эти правила, делать толстые контроллеры и т.д. В этом случае бизнес логика будет потихоньку "вытекать" из модели. Это не хорошо, и на хоть сколько нибудь больших проектах может привести к проблемам. Потому важно находить баланс.
    Ответ написан
    Комментировать
  • Contact form 7 почему не выводятся "Уведомления об отправке"?

    ssenj
    @ssenj
    HTML, CSS, PHP, WordPress, Bitrix
    Нашел "временное" решение (до обновления Contact Form 7)
    В файле /wp-content/plugins/contact-form-7/includes/js/scripts.js из переменной $message удалил второй параметр
    5da9bd956399d208558102.png
    Сообщения начали отображаться.
    Почему так - не знаю, я не силен в js и разбираться особо не хочется.

    До кучи перенес стили "удачной отправки"
    5da9be1e2d99a846013884.png
    Это решение изменяет цвет "успешной отправки" на зеленый после неудачной (желтой рамки).
    Ответ написан
    Комментировать
  • Contact form 7 почему не выводятся "Уведомления об отправке"?

    @fuild
    Решил поделиться, почему у меня не отображалось уведомление и страница перезагружалась после отправки формы:

    В шаблоне футера вызов <?php wp_footer(); ?> был размещен ниже вывода всех .js
    Поставил его над всеми .js и все заработало.
    Ответ написан
    Комментировать
  • Как подключиться с помощью PHP к FTP и вывести список файлов и папок FTP?

    kawabanga
    @kawabanga
    Можно через CURL,
    Можно через php ftp https://www.php.net/manual/ru/book.ftp.php

    Зависит от вашего протокола ftp.

    Пару месяцев назад я делал проект, где использовался Implicit FTP over TLS . Через CURL в итоге получилось запустить.
    Ответ написан
    Комментировать
  • Как подключиться с помощью PHP к FTP и вывести список файлов и папок FTP?

    smilingcheater
    @smilingcheater
    Начните с чтения доков по работе с FTP https://www.php.net/manual/ru/function.ftp-connect.php
    Ответ написан
    Комментировать
  • Как создать AJAX запрос?

    @alekcena
    Нелинейный наставник
    При удалении посылаешь данные
    {
    Id - такой то(Ну или шо там надо)
    }

    Ожидаешь ответ от сервера true\false

    Обрабатываешь ответ на js
    Если всё ок удаляешь дом элемент jsom - нет не удаляешь.
    Ответ написан
    Комментировать
  • PHP, отправка письма?

    @tomcode
    Ответ написан
    Комментировать
  • PHP, отправка письма?

    @Ex1st
    Забудь об отправке через стандартную функцию php. Отправляй через SMTP с помощью библиотеки PHPMailer. Выше скинули хороший материал.
    Ответ написан
    6 комментариев
  • Как правильно оценивать сроки на разработку сайта в web студии?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    «В молодости я спросил у начальника, как оценить время на выполнение работы? И начальник ответил мне:
    — Время, которое ты планируешь, умножить на Пи пополам, плюс 2 недели.
    — Почему Пи пополам? — удивился я.
    — Потому что в реальной жизни ты никогда не будешь двигаться к своей цели напрямую, а скорее — по дуге окружности.
    — А почему плюс две недели?
    — А потому, что когда ты в итоге просрёшь все сроки, то за две недели хоть что-то успеешь сделать.» (с)
    Ответ написан
    1 комментарий
  • Где начинающему разработчику подглядеть примеры неговнокода?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    На самом деле надо качать Лару а ещё лучше - Симфони.
    Только не тупо зазубривать, а пытаться понять, почему там так сделано. Это и будет теми самыми примерами.
    И да - не Лару точно. Потому что там очень много магии которая полезна тем кто понимает как она работает и очень вредна для тех кто учится.

    И вот изучая нормальный фреймворк ты как раз и будешь учиться примерам хорошего кода.
    Начать можно с этой хрестоматийной статьи https://symfony.ru/doc/current/introduction/from_f...
    А потом переключаться на https://github.com/symfony/demo

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

    И кстати я совсем забыл. У нас же есть гений в своем отечестве, Дмитрий Елисеев. На фоне бесчисленных неграмотных выскочек типа хаудихи или, прости господи, руселлера, это реально человек который знает, о чем говорит.
    И - что гораздо реже случается - умеет донести эти знания до аудитории.
    И насколько я понимаю, твой уровень уже должен позволять в принипе понимать, о чем он говорит.
    В общем начать можно отсюда, https://elisdn.ru/blog/113/psr7-framework-http
    и дальше остальные материалы.
    Ответ написан
    8 комментариев
  • Правильно ли я защитил сайт?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    правильно
    ты, главное, идею пойми
    а как поймешь - поймешь что csrf лучше ставить JS кодом, уже сложнее для атакующего, ну и прочие навороты
    ну и проверка-то правильная
    а вот вставил ли ты ее ВО ВСЕ страницы где она нужна?
    Ответ написан
    1 комментарий
  • Как вывести только товары с акцией в WooCommerce?

    wppanda5
    @wppanda5 Куратор тега WordPress
    WordPress Mедведь
    так wp-panda.com/woocommerce_posts/woocommerce-shortco...

    цикл сильно прощще

    <ul class="products">
    	<?php
                    $product_ids_on_sale = wc_get_product_ids_on_sale();
    
    		$args = array(
    			'post_type' => 'product',
                            'post__in' => array_merge( array( 0 ), $product_ids_on_sale )
    			);
    		$loop = new WP_Query( $args );
    		if ( $loop->have_posts() ) {
    			while ( $loop->have_posts() ) : $loop->the_post();
    				wc_get_template_part( 'content', 'product' );
    			endwhile;
    		} else {
    			echo __( 'Продуктов не найдено' );
    		}
    		wp_reset_postdata();
    	?>
    </ul><!--/.products-->
    Ответ написан
    1 комментарий
  • Как вывести только товары с акцией в WooCommerce?

    CrewCut
    @CrewCut
    Коплю силы на переезд в тропики
    Можно шорткодом [sale_products per_page="12"] (12 - кол-во продуктов на вывод)

    Можно кодом:
    $args = array(
        'post_type'      => 'product',
        'meta_query'     => array(
            'relation' => 'OR',
            array( // Simple products type
                'key'           => '_sale_price',
                'value'         => 0,
                'compare'       => '>',
                'type'          => 'numeric'
            ),
            array( // Variable products type
                'key'           => '_min_variation_sale_price',
                'value'         => 0,
                'compare'       => '>',
                'type'          => 'numeric'
            )
        )
    );
    
    query_posts( $args );


    Узнать есть ли скидка:
    $product->is_on_sale()

    --
    Смотря что нужно в конкретном случае
    Ответ написан
    Комментировать