Задать вопрос
  • Ошибка JavaScript в PhpMyAdmin?

    wielski
    @wielski
    ✔ Совет: Вам помогли? Отметьте ответы решением.
    Обновите phpmyadmin.
    Попробуйте сменить язык на Английский - обычно такая проблема возникает из-за локализации.
    Вроде бы в последних версиях решено.
    Ответ написан
    Комментировать
  • Зачем устанавливать GitLab?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    GitLab устанавливают по следующим причинам:
    1. Соблюдение коммерческой тайны
    2. Изоляция от публичной сети (например развертывание в локальной сети учебного заведения)
    3. Уменьшение финансового бремени (приватные репозитарии стоят денег)
    4. Уменьшение зависимости от бизнес-модели. Например ГитХаб уважает законы других стран и реагирует на нарушения в правовом поле. ГитЛаб не несет отвественности, поскольку ответственность возглагается на того, кто его устанавливает и как им пользуется. Это значит, что вы можете захоститься где-нибудь в Корее и в репу насовать всякой дряни. ГитЛаб никак не может на это повлять, поскольку это невозможно.
    5. Cреда непрерывной интеграции у Gitlab лучше.
    6. Чтобы сказать Нет уродливому сине-фиолетовому цвету, который недавно на нем ввели.
    Ответ написан
    3 комментария
  • Как перенять объектно-ориентированное мышление?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Т.е. сложно понимаю, что "засунуть" в один объект, что в другой, что должно быть статическим методом, что приватным и тд.


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

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

    Теперь задумаемся о декомпозиции всего этого хаоса. Мы находим какую-то задачу, которую выполняет наш код (например какую функцию вызвать для обработки каждого конкретного запроса) и выносим это в отдельный объект. Отправка email-ов - отдельный объект. Весь SQL зашиваем в отдельный объект. Соединение с базой - объект. Пользователи - объекты. Все - объекты.

    И главное, у каждого объекта есть своя область ответственности. UNIX way. Каждый объект делает что-то одно и делает это хорошо. Бывает так что ну... нужно сделать так что бы один объект делал две вещи. НЕ вопрос, мы можем его попросить сделать что-то сложное, а он будет как хороший менеджер тупо делегировать работу другим объектом. То есть он и сложную штуку сделает, и сам не будет знать как она делается.

    А все безхозные функции, которые не пренадлежат никаким объектам (например функции порождающие объекты) можно вынести в статические методы. Главное что бы статичесих переменных у нас небыло (ибо это те же глобальные переменные). И поменьше публичного ибо черт его знает что эти разработчики будут использовать. Причем "те разработчики" это вы завтра.

    Вообщем писав всё время на процедурке, сложно перейти на ооп.


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

    Вы можете начать погружаться в ООП с того, что разобраться "почему глобальные переменные это плохо", почему "состояние порождает сложность" и что такое эта "сложность" (многие почему-то думают что сложность выражается в написании кода а не в его чтении или поддержке), почему "изоляция" (и как следствие инкапсуляция) - это хорошо. Как это все соотносится с декомпозицией. Что такое "ответственность", что такое зависимости, связанности

    Подскажите, какой проект начать писать (гостевая, блог), или может начать изучать фреймворк.


    Фреймворки универсальны, а значит чистого ООП там быть не может. Во всяком случае нет ни одного фреймворка на котором стоит учиться ООП.

    Есть хорошие упражнения на развитие понимания объектно-ориентированного проектирования. Например вот: https://habrahabr.ru/post/206802/

    Сразу хочу отметить что это крайности. Упражнения же. Они должны ограничивать вас что бы заставлять думать и задавать правильные вопросы.

    Или может подскажите книгу/сайт где пошагово в ооп написан какой-то проект, чтобы быстрее пришло понимание.


    Так вы научитесь делать один конкретный проект а на втором вы уже проиграете. Так дела не делаются. Надо разобраться с причинами появления идеи ООП. Ну то есть что было до. Можно еще с функциональным программированием попробовать разобраться. В PHP оно слабо применимо, но основные идеи очень тесно переплетаются с ООП и познав немного функциональщины ваше ООП будет лучше. Да и если про ООП вы можете найти много булшита, про функциональщину врут мало.
    Ответ написан
    3 комментария
  • Можно ли использовать firebase из PHP для замены MySQL?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    firebase из PHP для замены MySQL?


    В этом ровным счетом никакого смысла. Хотя да, можно. Но лучше вообще отказаться от PHP в этом ключе. То есть где-то 80% задач бэкэнда берет на себя firebase (CRUD операции) а вам как бэкэнд разработчику остается только самое вкусное (платежи, кастомная логика, все что не умеет firebase словом).

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


    Это больше чем база данных.
    Ответ написан
    4 комментария
  • Можно ли использовать firebase из PHP для замены MySQL?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Начнем с того, что бесплатной она не является https://firebase.google.com/pricing/
    Большие объемы Вы там хранить разоритесь.

    В официальной документации есть вполне понятный REST API и даже библиотека для php на гитхабе
    https://firebase.google.com/docs/database/rest/start
    https://github.com/ktamas77/firebase-php

    Ну и в целом - сам не щупал, но судя по гайдам и ценам - основное применение это убрать необходимость разработки бекенда к мобильным приложениям, путем прямых запросов в БД.
    Ответ написан
    1 комментарий
  • Как запустить YII2 advanced?

    usdglander
    @usdglander
    Yipee-ki-yay
    1. Это разные приложения над одним фреймворком.
    2. Там php yii init надо выполнить чтобы появились файлы index.php в папках frontend/web и backend/web
    Ответ написан
    Комментировать
  • Как запустить YII2 advanced?

    @AlexndrNovikov
    Solution Architect in Spiral Scout
    Комментировать
  • Как запустить YII2 advanced?

    nekt
    @nekt
    программист
    Если есть понимание, зачем нужен advanced, то откуда такие вопросы?

    Формально вот ссылка на репу, там все указано: https://github.com/yiisoft/yii2-app-advanced/blob/...

    Чуть менее формально - в backend кладется админка, в frontend - сам сайт, в common - общие классы.

    Краткая инструкция (требуется composer и гитхаб может попросить сгенерировать токен):
    $ composer global require fxp/composer-asset-plugin
    $ composer create-project yiisoft/yii2-app-advanced # токен может потребоваться здесь
    $ cd yii2-app-advanced
    $ ./init # тут отвечаем на вопросы
    $ ls frontend/web
    $ ls backend/web
    Ответ написан
    Комментировать
  • Как включить функцию WebGL в Google Chrome?

    Ernillew
    @Ernillew
    Администрирую *nix-системы с 1997 года
    Комментировать
  • Посоветуете книгу по node.js?

    @Kirill-Gorelov
    С ума с IT
    Шелли Пауэрс Изучаем NODEJS переходим на сторону сервера
    Хэррон_Node_js_Разработка_серверных

    И еще рекмоендую Хавербеке М Выразительный JavaScript, там немного, но тоже хорошо описание про node. Там автор создает сайт на полном js(node)
    Ответ написан
    1 комментарий
  • Как принять ветку pull request?

    honor8
    @honor8
    Принципы быстродействия VBA в описании
    Посмотрите на github в разделе "Pull requests" в какую ветку предлагают внести/слить изменения. Невозможно слить изменения с несуществующей веткой. Подробно про внесение изменений: https://habrahabr.ru/post/125999/
    Ответ написан
    Комментировать
  • Как правильно делать пул реквесты в Open Source?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Pr не приняли, но и ничего не ответили.

    Вот тут и нужно было спросить, в чём дело -- код мейнтейнеру не понравился или оформление.
    Ответ написан
    3 комментария
  • В каком сервисе можно провести ревью итогового кода выложенного на bitbucket & github?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Там же и можно, открываете код, тыкаете в любую строчку и у вас появляется возможность комментировать.
    Тут правда есть одна хитрость, код должен быть оформлен как пулл реквест в ваш репозиторий.
    Ответ написан
    5 комментариев
  • Как понять Python?

    globuzer
    @globuzer
    gezgrouvingus progreszive ombusgrander greyderzux
    Конечно на счет Лутц или не Лутц - спорно. Вообще, прелесть Лутца - очень все доступно! Даже человеку с нулевым знанием в Python. Ну и закрепить Лутца можно просмотрев видеолекции от Лекториума (читает Е.Тузова), интересно.
    Самый, мне кажется, благоприятный материал для новичков...
    Ответ написан
    Комментировать
  • Позволит ли ангулар написать мне реал тайм чат?

    @gimntut
    Firebase, Parse и десятки других Baas предлагают готовые механизмы для подобных задач.
    FireBase Angular - https://www.firebase.com/docs/web/libraries/angular/
    FiriBase Chat - https://www.firebase.com/docs/web/libraries/angular/

    QuickBlox - отечественный аналог.
    Пример: quickblox.com/developers/Web_XMPP_Chat_Sample
    Условия: quickblox.com/plans
    Ответ написан
    Комментировать
  • Позволит ли ангулар написать мне реал тайм чат?

    websocket поможет, а точнее socket.io - там и демо чата есть.
    Ответ написан
    Комментировать
  • PHP: автозагрузка классов. Объясните на пальцах на простом примере?

    delphinpro
    @delphinpro Куратор тега PHP
    frontend developer
    Все свои классы располагаете в папке app/ (к примеру)
    Всем классам задаете namespace Fogersp\SuperProject
    В composer.json пишете в секции autoload

    ...
    "autoload": {
      "psr-4": {
        "Fogersp\\SuperProject\\": "app"
      }
    },
    ...


    Это значит, что классы с нэймспейсом Fogersp\SuperProject автозагрузчик будет искать в папке app/
    Например, класс Fogersp\SuperProject\DB\Entry должен располагаться в файле app/DB/Entry.php

    Далее в корне проекта выполняете команду
    composer dumpautoload
    и композер создаст вам автозагрузчик.

    Теперь в точке входа подключаете этот загрузчик и не паритесь о подключении файлов
    include '../vendor/autoload.php';

    Вот и всё =)
    Ответ написан
    10 комментариев
  • WooCommerce или Opencart?

    @TwistedAndy
    Мне больше нравится WooCommerce. Она гораздо удобнее для разработчика, ее легче поддерживать и обновлять.

    Из явных преимуществ WooCommerce перед OpenCart отмечу:
    1) Вариации товара. Грубо говоря, для каждой опции товара можно указать свою картинку, свой артикул, цену и кучу других параметров. Автоматически решается проблема с наличием или отсутствием некоторых опций. В OpenCart есть функционал опций, но он очень ограничен.
    2) Более-гибкая система фильтрации товаров, встроенные виджеты с фильтрами
    3) Наличие полноценного блога с комментариями и кучей дополнений
    4) Магазин на WooCommerce на порядок легче обновлять в силу особенностей архитектуры. OpenCart как таковой обновлять сложно. VQMOD/OCMOD, грубо говоря, меняют определенные куски исходного кода. Если сам код обновился или другой плагин его изменил, то возникают проблемы.
    Ответ написан
    Комментировать