Задать вопрос
  • Как создать своё правило, которое будет работать в Реквесте?

    @SivlerWolf
    Php web developer, create Laravel code
    привет,
    https://laravel.com/docs/7.x/validation, решение думаю нужно искать тут, в пункте, где говорится про исключения валидатора
    Ответ написан
    Комментировать
  • Компьютер включается и выключается через секунд 10,почему?

    Sanes
    @Sanes
    Батарейку поменяй. Почисти контакты памяти ластиком, в слоте кисточкой. Если у памяти несколько планок, пробуй по одной в разные слоты.
    Ответ написан
    Комментировать
  • Почему приложение Habr перестало работать на iOS и исчезло из App Store?

    deepblack
    @deepblack
    У команды Хабра в приоритете мобильная версия сайта
    Ответ написан
    Комментировать
  • Что делать с модулями NPM для Сайта?

    GreyCrew
    @GreyCrew
    Full-stack developer
    Это потому, что require() не существует в JavaScript на стороне браузера / клиента.
    Как решить проблему:
    1) requirejs
    2) Импортируйте, используя <script> тег
    3) Собирайте проект сборщиком, типа webpack
    Ответ написан
    Комментировать
  • Могут ли взломать Mysql через открытый порт 3306?

    @mitya_k
    База никогда не должна быть доступна наружу!

    Порт 3306 должен быть доступен только с localhost, иначе все повторится.

    Для того чтобы подключаться с другого компа надо делать, либо проброс порта через SSH (ssh user@example.com -L 3306:127.0.0.1:3306 -N), либо настраивай VPN.
    Ответ написан
    5 комментариев
  • Правильно ли выбрасывать исключения в бизнес логике?

    Я считаю это хорошей практикой. Исключительная ситуация - это та, при которой программа выполняется не так, как ожидалось. Но, позвольте, я ожидаю, что заказ пройдет валидацию. Я ожидаю, что заказ завершится успехом. Поэтому OrderValidationException, OrderException - исключительные ситуации. Исключительной ситуацией не является, например, отмена пользователем заказа - глупо выбрасывать исключение по клику на Cancel.

    Исключения гораздо глубже, чем просто "исключительная ситуация". Они помогают развести обработку ошибок по разным уровням абстракции, а использование разных типов исключений позволяет обрабатывать конкретные ошибки там, где их нужно обработать (на нужном слое). Исключения очень помогают в локализации ошибки в дальнейшем, они позволяют избавиться от простыни If .. else, проверок на null, false и прочей ереси. Они, чаще всего, делают код чище.

    Но пользоваться ими стоит аккуратно, все-таки стоит разделять исключительную ситуацию и вполне нормальную, штатную ветку исполнения. Так, если заказов нет - это НЕ исключение, тут можно вернуть null - допустимо (хотя некоторые и тут выбрасывают исключение, потому что очень соблазнительно привязать код исключения к HTTP кодам). А если у вас аплоад документов, и юзер пытается загрузить файл слишком большой, то это уже исключение.
    Ответ написан
    1 комментарий
  • Откуда вы черпаете идеи для дизайна?

    zahmTOD
    @zahmTOD
    Графический дизайнер
    Что вы имеете ввиду под «креативное»? В интерфейсах достаточно жесткие рамки, чтобы страдать фигней, особенно в массовом продукте.

    А так — отдыхайте. Займитесь чем-то ненавязчивым, съездите в другой город, просто сделайте генеральную уборку. Основная задача — не думать о работе.
    Ответ написан
    Комментировать
  • Автоматический phpDoc в Laravel?

    @vism
    Комментировать
  • Может ли новый абонент, купивший мой старый номер телефона, войти в мои мессенджеры?

    Keffer
    @Keffer
    ICANN
    Меняешь во всех сервисах старый номер на новый. И будет счастье. Что трудного то?
    Ответ написан
    3 комментария
  • Нормально ли будет взять October CMS за основу сайта?

    neuotq
    @neuotq
    Прокрастинация
    Ну, откровенно говоря он избыточен. October CMS можно сказать wordpress в мире Laravel.
    Те просто ради админки его брать нет смысла. А вот если вы хотите использовать их обширную библиотеку готовых плагинов то да.
    А так лучше подобрать из готовых кирпичиков круд админки, ларавел пакеты для управления ролями(например spatie/laravel-permission удобен достаточно, у spatie вообще много неплохих пакетов) и тп.
    Ответ написан
    Комментировать
  • Прием он-лайн платежей из Казахстана. Какие есть варианты?

    В настоящее время интернет-эквайринг в Казахстане возможен через две компании:
    • Казкоммерцбанк (epay.kkb.kz)
    • processing.kz
    Я разработал модуль интернет-эквайринга через Казкоммерцбанк (epay.kkb.kz) для Российской сборки Magento: magento-forum.ru/forum/324.
    Ответ написан
    Комментировать
  • Как устроиться на работу в РФ удаленно гражданину Казахстана?

    @anton99zel
    29а класс средней школы №7
    Можно ли как-то официально устроиться удаленно не имея ИП?

    Что за вопрос то?
    Конечно можно. Другое дело, что ваш работодатель так не хочет, а вернее хочет платить деньги как контрагенту, а не как сотруднику.
    Вполне рабочая схема - просите в России у знакомых поработать через их ИП.
    Они заключают договор с вашим работодателем об оказании услуг, деньги получать будете на карту в валюте. Но в таком случае нужно делиться от 7% от суммы дохода и выше + как то узаконивать получение денег в вашей стране.
    Ответ написан
    2 комментария
  • Стоит ли интернет-магазину в 2020 году полагаться на SEO-оптимизацию, как на основной источник клиентов?

    opium
    @opium
    Просто люблю качественно работать
    дурацкий какой то вопрос
    сео вы сделали и оно потом как бы бесплатно несет клиентов
    а за рекламу вы платите за каждый клик
    собственно все не сидят на рекламе только по одной причине , либо нельзя рекламироваться, либо сео дешевле выходит
    в 2020 году в этом плане ничего не изменилось
    трачу 100к на сео получаю трафик бесплатно в гигантских обьемах в разрезе года клики по рублю в итоге , а в рекламе клики по 5 баксов

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

    так что на директе надо было сидеть раньше
    Ответ написан
    2 комментария
  • Как узнать откуда был загружен iframe?

    @granty
    Откуда был загружен iframe никак не узнать (узнать-то можно, но в вашем случае это не поможет).

    1. яваскрипт не сработает, тк политика «Одинакового источника» (Same Origin Policy) запрещает доступ из ифрейма к window.top.location.href, если они имеют разные происхождения (грубо говоря - разные домены).
    Проверить window.top != window.self браузер даёт, а доступ к фактическому url из window.top - нет.

    2. на сервере проверять переменную $_SERVER['HTTP_REFERER'] (кто запросил загрузку страницы) смысла тоже нет - если у ифрейма установлен атрибут referrerpolicy:
    <iframe referrerpolicy='no-referrer'>
    реферер не будет прислан (будет, но только в IE/Edge и Safari_IOS).


    Но сделать то, что вы хотите - можно легко. На странице надо издать HTTP-заголовок CSP с директивой frame-ancestors:
    header( "Content-Security-Policy: frame-ancestors https://ваш_сайт.ru http://ваш_сайт.ru https://www.facebook.com https://facebook.com https://www.google.com https://google.com;" );

    это разрешит открывать эту страницу в ифрейме с собственного домена ваш_сайт.ru(без поддоменов!) по http:/https:.
    И сайтам facebook.com и google.com с www или без (но только если фэйсбук/гугль загружены по https: - а их и невозможно загрузить по http:).

    PS: если ваш сайт доступен и по www - добавьте в "волшебную" строку:
    https://www.ваш_сайт.ru http://www.ваш_сайт.ru
    Ответ написан
    Комментировать
  • Битрикс CRM Получить ID контакта?

    gromdron
    @gromdron Куратор тега Битрикс24
    Работаю с Bitrix24
    Есть как минимум 2 варианта (без прямых запросов в базу) как это сделать:

    1) Высокоуровневый (работает всегда). Метод с поддержкой обратной совместимости: CCrmContact::GetList (bxapi.ru/src/?id=183244)

    Применение (за основу взял код описанный Артем):

    /* @var array Список контактов */
    $arContacts = array();
    
    if ( \Bitrix\Main\Loader::IncludeModule('crm') )
    {
    	/* @var array Сортировка полученного списка контактов */
    	$arOrder  = array('ID' => 'DESC');
    
    	/* @var array Условия получаемого списка контактов */
    	$arFilter = array(
    		"NAME"      => "Имя",
    		"LAST_NAME" => "Фамилия",
    		'CHECK_PERMISSIONS' => 'N' // Данный ключ необходим для того чтобы получить всех пользоватей,
    								   // иначе, будет найден только если ответственным за него является тот,
    								   // под кем запускается скрипт в битриксе
    	);
    
    	/* @var array Получаемые поля для списка контактов */
    	$arSelect = array(
    		'ID'
    	);
    
    	// NOTE: Запрашивайте только необходимые поля
    	$res = CCrmContact::GetList( $arOrder, $arFilter, $arSelect );
    
    	while( $arContact = $res->fetch() )
    	{
    		$arContacts[ $arContact['ID'] ] = $arContact['ID'];
    	}
    }
    
    // Тут в $arContacts либо пустой массив, либо массив с ID контактами, которые соответствуют условию поиска


    2) Низкоуровневый DataMapper (новый подход d7)

    use \Bitrix\Main\Loader;
    use \Bitrix\Crm;
    
    /* @var array Список контактов */
    $arContacts = array();
    
    if ( Loader::IncludeModule('crm') )
    {
    
    	$resContacts = Crm\ContactTable::getList(array(
    		'select' => array('ID'),
    		'filter' => array(
    			"NAME"      => "Имя",
    			"LAST_NAME" => "Фамилия",
    		),
    		'order' => array('ID' => 'DESC')
    	));
    
    	while( $arContact = $resContacts->fetch() )
    	{
    		$arContacts[ $arContact['ID'] ] = $arContact['ID'];
    	}
    
    	/*
    	Начиная с 17 версии (вроде бы), можно делать так:
    	foreach( $resContacts as $arContact)
    	{
    		$arContacts[ $arContact['ID'] ] = $arContact['ID'];
    	}
    	вместо while цикла
    	*/
    }


    Преимущество первого подхода:
    - Работает всегда, как для новых, так и для старых проектов
    - Можно использовать уровни доступа

    Преимущество нового подхода:
    - Технологически универсален за счет d7 (можно в runtime прибавлять связи, доставать связанные сущности и т.п.)
    - В DataMapper есть технология кеширования, т.е. можно закешировать результат просто добавив в массив getList еще один ключик
    - Субъективно код легче воспринимается
    Ответ написан
    3 комментария
  • Как правило организовать рабочее окружение web разработчика?

    Sanes
    @Sanes
    windows wsl
    Ответ написан
    Комментировать
  • Куда двигаться дальше?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Знаю, что отечественным компаниям совсем не нужны верстальщики-дизайнеры

    Отдельно не нужны дизайнеры и отдельно верстальщики, а вот дизайнеры-верстальщики ещё как нужны. Особенно, если дизайнер не тонкая натура, которая "так видит", а реальный ui/ux-специалист, делающий по науке. Таких мало, и за них натурально война.

    
Минусов фронта пока не вижу, может вы подскажете, какие подводные камни в этом направлении имеются.

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

    delphinpro
    @delphinpro Куратор тега Вёрстка
    frontend developer
    Mobile first — это не только последовательность медиа-запросов.
    В первую очередь этот подход ориентируется на представление важного содержимого, легковесность и оптимизацию для мобильных устройств и мобильного интернета.
    Ответ написан
    Комментировать
  • Есть ли смысл делать SPA?

    Kozack
    @Kozack
    Thinking about a11y
    Быстрой пройдясь по тексту, похоже, что вам нужен сложный интерактивный интерфейс. В таком случае — да, фреймворк по типу Vue вам отлично подойдёт для этой задачи.
    Если нужно чуть больше функций — изучите возможности и примеры тут — https://nuxtjs.org/
    Ответ написан
  • Как подключиться к WhatsApp Bussiness API?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Для стран бывшего советского союза они не предоставляют api. Да и у себя далеко не всем
    Ответ написан