Подсел на javascript.
JQuery уже не торкает, употребляю потяжелее — react/vue.
Без ежедневной дозы javascript начинается ломка.
Контакты
Местоположение
Россия, Самарская обл.

Достижения

Все достижения (99)

Наибольший вклад в теги

Все теги (270)

Лучшие ответы пользователя

Все ответы (1381)
  • PSR-0 или PSR-4, и как правильно построить структуру проекта?

    delphinpro
    @delphinpro
    frontend developer
    /path/to/project/ это путь к проекту и данный путь нигде не фигурирует, это та директория из которой запускается основной index.php

    Нет. Этот корневая директория проекта. Из нее запускается композер. В ней же обычно лежит DOCUMENT_ROOT каталог, в котором уже и находится точка входа index.php. Также здесь лежат директории vendor (для сторонних пакетов) какой нибудь application/ для ваших файлов.

    Давайте попробую объяснить на примере.

    Пусть будет такая структура, например.
    20151206-170857.png
    в vendor - вам ничего самому писать не нужно. Этот папка для композера.
    public_html - в ней только index.php и все ваши css, images, js. Это папка на которую указывает DOCUMENT__ROOT в настройках домена вашего сервера. Только эти файлы доступны "по интернету".
    application - здесь все ваши самописные php файлы.
    (На остальные каталоги не обращаем внимания, в корне проекта можно располагать все что вам удобно, это не будет доступно из web)

    Под такую структуру написан подобный composer.sjon
    {
      "require": {
        "php": ">=5.5.9",
        "slim/slim": "2.*",
        "twig/twig": "~1.18",
        "slim/views": "^0.1.3",
        "robmorgan/phinx": "^0.4.4",
        "illuminate/database": "^5.1"
      },
      "minimum-stability": "stable",
      "autoload": {
        "psr-4": {
          "MyName\\MyProject\\": "application"
        }
      }
    }

    Тут вроде бы все просто. В require перечислены используемые пакеты. Поясню только autoload. Автозагрузка по стандарту PSR-4. Указано пространство имен ваших файлов и папка в которой они лежат.
    Если ваш класс MyClass лежит в папке application - то у него должно быть пространство имен \MyName\MyProject (полное имя класса получается \MyName\MyProject\MyClass). Если ваш класс MyController лежит в папке application/Mvc/Controllers, то, соответственно \MyName\MyProject\Mvc\Controllers\MyController.

    При этом вам не нужно заморачиваться и писать автозагрузчик. Просто выполните команду php composer.phar install (или php composer.phar dumpautoload для пересборки аавтозагрузчика) и подключите файл автозагрузчика в index.php
    include '../vendor/autoload.php';

    Не использовать композер не имеет смысла, т.к. это очень просто. Просто скачайте файл https://getcomposer.org/composer.phar в корень проекта и пользуйтесь (см выше).
    Ответ написан
  • Как убрать рамки в html?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Правая кнопка мыши
    Пункт «Посмотреть код элемента»
    Наводим курсор на интересующий элемент и все видим
    Желтые рамки - это margin
    Зеленые - padding

    5cfee2ff1acd9033470979.png

    Или смотрим на вкладке «Computed»:

    5cfee33225321589388047.png
    Ответ написан
  • Что означает (jQuery) после (function( $ )?

    delphinpro
    @delphinpro
    frontend developer
    (function( ) {
    })();

    Вот эта конструкция называется "анонимная самовызываемая функция".

    То есть, тут два действия:
    Объявление анонимной функции
    function( ) {
    }

    и сразу ее вызов
    ()()
    Первые скобки это синтаксический приём для вызова анонимной функции. Есть и другие методы. Например
    +function(){}()
    Вторые скобки - это собственно вызов функции и при необходимости передача параметра (обычный вызов же)

    ()(jQuery) — в параметре передается jQuery

    function($){} — а тут этот параметр объявлен и используется

    (function($){})(jQuery) — итого, объявили анонимную функцию, и вызвали ее, передав параметром объект jQuery

    Например, доллар у вас используется другой библиотекой, пусть MooTools.
    Тогда вы запускаете jQuery в безконфликтном режиме

    jQuery.noConflict();

    Это значит, что доллар использоваться не будет, и объект будет доступен только по ссылке jQuery.

    Но для удобства вы можете использовать анонимную функцию и безопасно использовать внутри неё переменную доллара

    (function($){
      $('.slider').slick();
    })(jQuery);


    Чтобы стало совсем понятно, конструкцию можно переписать без анонимной функции =))

    var myFunc = function($){
     // some code
    }
    
    myFunc(jQuery);
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (38)