• Yii2 и deploy на сервер?

    Первый деплой:
    git clone
    composer install
    yii init
    #правите локальные конфиги (прописываете базу)
    yii migrate


    следующие деплои:
    git pull
    composer install
    yii migrate


    миграции создаем ручками
    yii migrate/create createUserTable
    и правим файл миграции
    Ответ написан
    10 комментариев
  • Для чего нужна ORM?

    Вы не путаете ORM с DBAL? ORM это не технология замены SELECT * FROM goods WHERE cost < 100.00 на $db->select()->from('goods')->where('cost < 100.00'). ORM это способ задания связи объектов и РСУБД. По сути позволяет абстрагироваться от способа хранения объектов вообще, с лёгкостью переходя от SQL к NoSQL, memcache, файлам или REST/RPC API на удалённом сервере, оперируя на уровне модели (если говорить о MVC и т. п.) простыми plain old objects, а их персистентность отдать контроллеру. Не $db->select()->from('goods'),, не mysql_query('SELECT * FROM goods'), а $goodsRepository->findAll(), а уж будет репозиторий формировать SQL запрос, читать файлы или память, а может стучаться на Гугл и парсить его вывод — его, репозитория, личное дело (а также разработчика(ов), отвечающих за подсистему хранения).

    Кроме того ORM, как правило не исключает обращение к БД на уровне произвольных SQL запросов, оно лишь преобразуют результаты этих запросов в объекты модели предметной области (и наоборот), которые ничего не знают (в идеале) о таблицах, WHERE, HAVING и т. п.

    ORM это не только инструмент архитектурного разделения областей ответственности объектов и классов приложения, а также инструмент облегчения разделения труда разработчиков: кто хорошо шарит в SQL вообще и особенностях конкретного движка в частности — работает по «ту сторону» ORM, оптимизирует его как хочет, может нормализовывать и денормализовывать, например; кто хорошо разбирается в дебетах и кредитах — работает с plain old objects в терминах предметной области и может вообще ничего не зная об SQL, ему лишь нужно знать, что он всегда может получить объект или их коллекцию обратившись к методам вроде findById() или findAll() и сохранить результат работы методом save() или flush().
    Ответ написан
    3 комментария
  • Чем отличаются Javascript и ECMAscript?

    xanep
    @xanep
    Что было сначала — курица или яйцо? :)
    Чтоб понимать как соотносятся Javascript и ECMAscript, нужно окунуться немного в историю. Javascript был создан как скриптовый язык для Netscape. Майкрософт создал свой скриптовый язык для IE, который назывался JScript. Естественно использовать 2 языка для разных браузеров было не кошерно и Netscape инициировало стандартизацию, в результате чего родился стандарт языка ECMAscript. ECMAscript не привязан к браузерам, сам по себе не имеет средств ввода/вывода. Последующие версии языков Javascript и JScript были приведены в соответствие стандарту ECMAscript. На основе этого стандарта также был создан ActionScript.
    В итоге сегодня Javascript состоит из 3-х практически отдельных частей
    — Ядро (полностью соответствует стандарту ECMAscript),
    — Document Object model (DOM)
    — Browser Object Model (BOM)
    DOM — это API для достука к HTML. Его спецификацию вы можете найти на сайте W3C. BOM в каждом браузере реализован по своему. Соответственно вы найдете спецификацию Javascript от Mozilla (как наследницы Netscape) на их сайте. Отдельно можете почитать спецификации ECMAscript и DOM.
    В итоге получается, что изначально стандарт ECMAscript был основан на Javascript, а потом Javascript основан на ECMAscript. Вот так запутанно :)
    Ну а приставка Java — это маркетинговый ход. Java была очень на слуху в 90-х, поэтому и выбрали такое название. Точнее даже переименовали язык из LiveScript в Javascript.
    Ответ написан
    1 комментарий