• Актуален ли сейчас jQuery?

    @rsi
    software engineer
    Я так понимаю у ваc возник этот вопрос в свете большого количества дискуссий на тему AngularJs и других подобных фреймфорков.

    jQuery и AngularJs, это принципиально разные вещи и созданы они для разных целей, хотя область их применения и перекрывается, она не совпадает полностью. Очень часто возникает вопрос, что применение jQuery не оправдано в некоторых случаях, так вот применение Angular неоправданно в еще большем количестве случаев.

    В вашем случае нужно применять именно jQuery, оставив Angular и ему подобные для тех проектов где имеется очень много логики и данных именно на JS, в обычных сайтах как правило эти функции лежат на сервере.

    В любом случае, если вы хотите уметь не просто добавлять эффекты и готовые плагины на JS, но писать полноценные приложения, выбрать один из мощных фреймвороков и изучить его параллельно jQuery
    Ответ написан
    Комментировать
  • Подойдут ли регулярные выражения от PHP на JS и наоборот?

    DevMan
    @DevMan
    Зависит от выражения: в js меньше модификаторов и поэтому некоторые выражения приходится слегка переписывать.
    Ответ написан
    Комментировать
  • Сортировка/фильтрация в Backbone?

    aen
    @aen
    Keep calm and 'use strict';
    Вы все верно предложили. Чаще всего только так и можно сделать. Главное в DOM вставлять сразу всю отрендеренную коллекцию, а не по одной вьюшке. И не забывать подчищать за собой в случае, если есть какие то лихие биндинги.
    Ответ написан
    2 комментария
  • Как сделать простенькую MVC модель в php?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Итак, займемся переводом для начала

    на главной создаю объект:

    В точке входа/во фронт контроллере. Объект этот завется маршрутизатор или раутер. Имеет отношение к MVC - нет.

    вот что в файле hello.class.php:

    Такое именование файлов и классов было модным во времена php4. Отройте для себя PSR0 (и еще отдельно про PSR-4 можете почитать).

    Т.е. при обращении по url: site.localhost/hello я вижу hello!!!! на экране.

    Поздравляю вас с первым контроллером... хоть и убогим слегка. Читаем про контроллеры в контексте GRASP

    ну в htaccess я прописал нужную конструкцию

    Верни мне мой 2007-ой, когда все было круто и все хвастались своими ЧПУ на модреврайтах. Подумайте в сторону единой точки входа и перенаправления всех запросов, для которых не нашлось файлов на эту точку входа. Но это так... просто... совет. Это упростит жизнь при миграции скажем на nginx или черокки какой.

    Вот я и поплыл в этих терминах.

    Заходим на википедию и выплываем.

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


    Советую почитать полную статью и пройтись по ссылкам. Особенно по части модели данных. Это должно прояснить для вас такой момент что модель это модель данных. То есть у вас есть данные, например блог-пост, есть его модель (просто класс Post который имеет поля id, title, body и т.д.). Проще говоря модель это представления данных в приложении. А view - это слой который занимается тем что переводит данные из формата модели в формат запрашиваемый пользователем. Причем вам не запрещается работать из контроллера с базой. Ну то есть как, есть такие вещи как сервисный слой и тонкие контроллеры, но мы же пока только учимся да?). В любом случае модель не должна знать ничего о том где и как она хранится.

    Теперь по поводу view. Давайте вспомним что такое запрос в контексте WEB-приложений. Это старый добрый HTTP запрос. У запроса есть заголовок - Accept который говорит что хочет получить пользователь (пользователи могут быть не живыми и хотеть что-то другое, например JSON). Через него браузер говорит что хочет получить. Например он говорит "хочу text/html" и мы должны выполнить следующие стэпы:
    - вызвать контроллер
    - контроллер достает из закрамов модельки которые хочет пользователь и отдает их во view.
    - view переводит данные из формата приложения в формат который хочет увидеть пользователь.

    В очень грубой форме view может быть таким:
    PostView {
        
        private $post;    
    
        public function __construct(Post $post) {
            $this->post = $post;
        }
    
        public function renderTitle() {
             return sprintf("<h1>%s</h1>", $this->post->getTitle());
        }
        // и еще пара методов    
        public function render() {
             $this->renderTitle();
             $this->renderBody();
        }
    }


    И по одному таком классу на каждую модель и в каждом классе придется реализовывать сложную логику по формированию вьюшек для наших моделей. Согласитесь, это не удобно. Потому придумали фигачить все в шаблонах и разруливать это движками для шаблонизации (да, одна единственная функция render которая просто инклудит php файл это тоже движек шаблонов).

    Практическое задание:
    Если все что делает контроллер это отдает отрендренный шаблон без какой либо переменной в нем.... Это MVC? Где тут модель?
    Ответ написан
    3 комментария
  • Как правильно составить такое условие в PHP?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Мне кажется вам пока рано писать плагины/компоненты для joomla...
    Ответ написан
    Комментировать
  • PDO, как получить оба id после объединения таблиц с помощью JOIN?

    KorsaR-ZN
    @KorsaR-ZN
    Да можно, просто сделайте алиас для второго поля, пример:
    SELECT *, tbl2.id AS id_file FROM tbl1 JOIN tbl2 ON условие
    Ответ написан
    1 комментарий
  • Как правильно построить архитектуру БД?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    В таблицах Event и User должно быть по строковому полю - имя файла. И всё. Городить же дополнительные таблицы - это бессмысленно усложнять ту самую архитектуру БД.

    Если уж тебе так хочется сделать централизованное хранилище картинок - делаешь в Event и User по полю file_id, ссылающихся на таблицу File. Но никаких ссылок на Event и User в таблице File вообще быть не должно. Тебе надо выбрать картинку при отображении записи - это делается связью из Event/User к File. Для каких задач тебе может потребоваться связь в обратную сторону?

    N.B. Чтобы определить - принадлежит ли файл пользователю - не требуется связь из File к User, достаточно связи из User к File.
    Ответ написан
    Комментировать
  • Как найти в чужом коде вызываемую по событию javascript-функцию?

    @amygdala
    На самом деле все можно сделать проще
    Для хрома есть такой extension, как Visual Event.
    cf0026e0d1c07869c1425893398a8db9.png
    Это расширение визуально выделяет элементы, на которые повешаны события, с ссылкой на файл и строку, где был добавлен обработчик.
    Ответ написан
    Комментировать
  • Как найти в чужом коде вызываемую по событию javascript-функцию?

    Sander_Li
    @Sander_Li
    Backend developer
    Через dev tools можно.
    Небольшой курс
    Ставите Event Listener Breakpoints на клик, и при выполнении клика, браузер остановится и покажет место в коде.
    -88693455.png
    Ответ написан
    Комментировать
  • Как добавить на сайт произношение английских слов и предложений (TTS)?

    mannaro
    @mannaro Куратор тега JavaScript
    Умею профессионально гуглить
    Попробуйте использовать google.
    Пример

    Для этого посылаете GET-запрос в таком виде:
    http://translate.google.com/translate_tts?ie=utf-8&tl=LANGUAGE&q=STRING
    Где LANGUAGE — язык (например ru), а STRING — ваша фраза.
    Ответ написан
    Комментировать