• У кого-нибудь есть аналог функции?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Вас(сервер) завалит любой бот с такими функциями...

    От чего вы защищаетесь?
    Ответ написан
    4 комментария
  • Почему функция обработки ошибок по какому-то "соглашению программистов" должна первым параметром принимать/возвращать код ошибки, а не сообщение?

    AMar4enko
    @AMar4enko
    Все очень просто.
    callback-функция в ноде принимает переменное число аргументов. Если возможную ошибку передавать последним аргументом, то тогда для каждой API-функции нужно будет помнить фактическое количество аргументов callback функции, чтобы ошибку записать в нужную переменную.
    Если вам это не нравится - используйте промисы.
    Ответ написан
    Комментировать
  • А как выглядит ваш MVC?

    @g00d
    у тебя два путя (с) :-)
    либо ты берешь известный фрейм и начинаешь пилить вместе с ним, параллельно изучая что да как.
    либо ты берешь и начинаешь читать о DDD и открывая чакры понимаешь что фреймы все это "от лукавого", единственное что тебе надо это решить конкретную проблему, выделить слой бизнесс логики, применить известную архиктуру типа гексагона и все.

    P.S. ах да, есть еще один вариант, нынче модно в функциональщину рвануть, тоже вариант!
    Ответ написан
    3 комментария
  • Как настроить css, чтобы при наведении, к примеру, на h1 менялся цвет у body?

    dsmyk
    @dsmyk
    Студент
    h1.onmouseover = function() {
    document.body.style.backgroundColor = ('background color', 'green');
    };

    PS - там, где h1 - айди, которое ты дал h1. Ну и вставляй в код после самого h1, событие которого обрабатываем
    Ответ написан
    1 комментарий
  • Как подключить js и css файлы в обход роутера?

    @Nyakator Автор вопроса
    Решил проблему с помощью виртуальной маршрутизации. После того как перенес сайт с localhost/blog на blog.localhost все заработало
    Ответ написан
    2 комментария
  • Как правильно обеспечить взаимодействие модель-контроллер?

    DevMan
    @DevMan
    обычно тип запроса определяется по адресу и/или заголовкам.
    это ответ на то, что написано в коменте.
    Ответ написан
    24 комментария
  • Когда используется next() в Express?

    Здесь речь не о "контроллерах", а о middleware. И в этом контексте цепочка вызова становится понятной. Например:
    1. нужно разобрать тело запроса,
    2. потом обработать куки,
    3. потом проверить аутентификацию пользователя,
    4. потом получить данные пользователя из БД (асинхронная операция),
    5. потом выполнить собственно контроллер роута (асинхронная операция),
    6. потом залогировать время выполнения скрипта,
    7. потом подчистить какие-то артефакты.

    Главная причина такой архитектуры - попытка избавления от callback-hell. В Express всё на колбэках, которые плохо приспособлены к асинхронности, на самом деле. Вот и придумали такие "промисы для бедных" (тут я сильно упростил, конечно).
    Ответ написан
  • Как задать разные фоны?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Неужели народ настолько обленился?)))
    Ответ написан
    1 комментарий
  • А как выглядит ваш MVC?

    riky
    @riky
    Laravel
    почитал некоторые ваши комменты, понял ваш контекст.
    даже молодость свою вспомнил, и сам раньше свой фрейм писал, думая что мой фрейм на пару-тройку десятков классов минималистичный, простой и быстрый. писать свое это круто поднимает скил, плюс ты знаешь его от а до я, если нужно что-то добавить или поменять.

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

    видно что ваш опыт пока недостаточен чтобы проектировать свой "идеальный фреймворк" раз встают вопросы "что еще" да и по комментам видно, а это значит что рефйакторить придется еще не раз, и чем дальше в лес, тем больше времени.

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

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

    если уж собрались пилить свой, то порекомендую хотя бы начать использовать готовые качественные компонеты. когда лет 5 назад пилил свой фреймворк сначала писал все с нуля потом начал внедрять симфони компоненты symfony.com/components а потом и вовсе на симфони фулл стек перешел.
    там их много, хватит на долго, рекомендую для начала посмотреть эти:
    HttpFoundation
    HttpKernel
    DependencyInjection <-- очень очень маст хэв сразу с этим разобраться, жаль я поздно начал применять
    Form
    Routing
    и Twig (шаблонизатор, он отдельно идет)

    во вторую очередь
    EventDispatcher
    Console
    Config

    также я в свой фреймворк вместо с компонентами симфони сразу же внедрил и Doctrine. Может показаться сложноватой с ходу, но зато когда научитесь ее готовить получится быстро и удобно. Это уже вариант на период когда "надоело писать много кода и долго отлаживать его, хочется быстро решать задачи". Хотя по началу конечно кажется что написать sql запросец проще.

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

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

    сорри за много букв и чрезмерный "позитив" просто сам когда то переболел.
    Ответ написан
    3 комментария
  • А как выглядит ваш MVC?

    za4me
    @za4me
    Человек
    Насчет MVC есть же отличная и понятная статья на хабре, первая ссылка в поиске по запросу "mvc habrahabr".
    Ответ написан
    Комментировать
  • А как выглядит ваш MVC?

    banderos120
    @banderos120
    Играю на балалайке
    Вы тут описываете вариант конкретной реализации. Вы можете придерживаться MVC и через три файла и через один файл, главное логически разделять код на составляющие, каждая из которых будет инкапсулировать в себе определенный тип работы - с представлением, с передачей данных, с обработкой данных.
    Ответ написан
    4 комментария
  • А как выглядит ваш MVC?

    @ckr
    А у меня все просто. Я не отхожу дальше одного файла от инструкций в мануале.
    В лучших традициях express. Конечно, это не PHP, но посмотрите сюда:
    expressjs.com/ru/guide/routing.html
    Может, Вам тоже понравится :-)

    Чуть не забыл, для вьюх использую jade
    Ответ написан
  • А как выглядит ваш MVC?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    2б. Есть "компоненты" (папка core)

    Это должен быть composer

    Router() - из конфига по регулярке ищет совпадение на REQUEST_URI и запускает "вьюху"

    4. Есть "контроллеры" (папка controllers) это модули самого проекта - хедер, футер, меню

    шта.
    Роутер пинает контроллер и его методы в зависимости от роута.
    А контроллер уже работает с моделями и выводит результат через view.
    Сейчас у вас контроллеры вообще просто для того чтобы они были получается...

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

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

    базнес-логика это непосредственно логика вашего проекта, а не внутренние процессы фреймворка и т.п.
    Ответ написан
  • Как защитить сайт от копирования?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Единственный рабочий вариант при демонстрации вёрстки и удобный для всех:
    Виртуалка/VPS + браузеры в режиме киоска + TeamViewer/VNC
    teamviewer-logo-big.svg
    -------------------
    Демонстрация через Skype - абсолютно неприемлемый метод: не проверить в различных браузерах, не потестировать удобство и масштабирование, плохое качество при передаче изображения и т.д.

    Я бы не стал работать с верстальщиком, который для демонстрации использует исключительно Skype, а не нормальные средства, позволяющие Заказчику САМОМУ проверять корректность вёрстки в различных браузерах и валидность стандартов такой вёрстки.
    А изначально, при начале работы с новым человеком, я бы, всё-таки, давал микро-тест на вёрстку и выравнивание из 2-3 элементов, смотрел бы его GitHub и читал бы отзывы в портфолио и после, договаривался бы ПО-ЧЕЛОВЕЧЕСКИ, а не начиная взаимоотношения с негатива.
    Ответ написан
    2 комментария
  • Как передать стили в качестве параметра в миксин?

    Serj-One
    @Serj-One
    i'm sexy and i know it
    Не совсем понятно, что именно ты собрался передавать в миксин.
    $xs: ('max-width:767px');
    @media ($xs) {...}

    Затем просто дописываешь в класс
    .block{
      ... // изначальные свойства
      @media ($xs) {
      ... // свойства блока для $xs
      }
    }
    Ответ написан
    Комментировать
  • Как сделать так, чтобы новые изображения при добавлении на сервер автоматически загружались в галерею на сайте?

    @axeax
    <?php
    
    	$filelist = "";
    	$path = "path/to/images";
    
    	function readfs($path){
    
    		$html = Array();
    		
    		if ($handle = opendir($path)) {
    
    		    while (false !== ($entry = readdir($handle))) {
    
    		    	if($entry == '.' || $entry == '..'){
    
    		    	}
    		    	else{
    		    		$html[] = $entry;
    		    	}
    
    		    }
    
    		    closedir($handle);
    
    		}
    
    		return $html;
    
    	}
    
    	
    	$filelist = readfs($path);
    
        // сортировка по имени файла, можно убрать если не нужно
    	sort($filelist);
    
    	foreach ($filelist as $key => $value) {
    		
    		echo "<img src='$path/$value'>";
    
    	}
    Ответ написан
    Комментировать
  • База PHP + JQuery за неделю! Каков алгоритм действий?

    @corsik
    Разработчик
    Когда начинал учить web программирование, все советуют написать свою phpmyadmin, соц. сеть и т.д.
    это Бред.

    Учится надо на том, что интересно, придумайте свой проект. Пусть это будет хоть блог на WordPress, главное чтобы вам было интересно. Вы захотите добавить к нему свои фишки и будете искать решение, потом еще какой плагин и т.д.

    Самое главное не начинать учить программирование с php и jQuery.
    https://habrahabr.ru/company/ruvds/blog/315572/
    https://lifehacker.ru/2016/11/17/pervyj-yazyk-prog...
    Вот учебник learn.javascript.ru по нему проходите медленно и дотошно, к концу учебника вы уже будете понимать основы и когда вы увидите jQuery вы поймете как все просто, а когда возьметесь за PHP все станет еще проще.

    Как выше сказали за неделю вы не научитесь ни чему.
    Ответ написан
    1 комментарий
  • База PHP + JQuery за неделю! Каков алгоритм действий?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    За неделю вы ничего не выучите.
    Все курсы, книги или что там еще "научись делать сайты за 23 часа/дня/секунды" и т.п.
    Это мусор.

    В лучшем случае вы hello world напишите за неделю.
    Шансов устроиться на вакансию это прибавит примерно нисколько.
    Уровень ниже плинтуса или половина плинтуса роль вряд ли сыграет.

    Проще тогда уже пойти и сказать как есть, что вы очень полный стажёр.
    Раз они ищут стажёра, они возможно готовы к такому.
    И если повезёт, возьмут и уже научат чему-нибудь.
    Ответ написан
    2 комментария
  • Почему код сортировки работает не так как ожидается?

    @Sayonji
    В php вообще-то нельзя так пользоваться оператором ||, он всё приведет к типу bool и вы получите на выходе только 1 и 0. Так делают в джавасприкте, а в php нужно писать ?:
    return $x1 - $y1 ?: ($x2 - $y2 ?: ($x3 - $y3));
    Ответ написан
    6 комментариев
  • Для чего в БЭМ т.н. "первый уровень вложенности", то есть "блок__элемент"?

    werty1001
    @werty1001
    undefined
    БЭМ про независимость блоков вот собственно и все. Стоит ли присоединиться к секте? Каждый решает сам. Любой мелкий сайт / ленд или что-то крупнее может очень комфортно жить без бема это факт.

    Сам я в какой-то момент решил, что лучше иметь какую-то методологию, а серьезных альтернатив у бема сегодня нет, пришлось вливаться. Что касается избыточности кода, классов там и всякого такого, то крутые чуваки ручками бем и не пишут, они используют полный стек от яндекса. Я просто написал обертку для pug и сделал свою gulp сборку.
    Ответ написан
    Комментировать