• Как получить доступ к локальной БД из vagrant?

    DevMan
    @DevMan
    даете права юзеру мускуля которым подключаетесь на удаленные конекты.
    ну и, соответственно, конектитесь по ip хоста.

    тут пример https://laracasts.com/discuss/channels/servers/con...
    Ответ написан
    5 комментариев
  • YII2 authclient не возвращается email пользователя?

    SamDark
    @SamDark
    Yii2 core team
    Исправлено в master-версии. Релиза ещё не было. В composer.json смените версию dev-master и сделайте composer update.
    Ответ написан
    1 комментарий
  • Как работает namespace в php?

    viktorvsk
    @viktorvsk
    Потому что неймспейсы никак не связаны с автозагрузкой
    Ответ написан
    Комментировать
  • Как работает namespace в php?

    Denormalization
    @Denormalization
    Потому что namespace никак не связан с подгрузкой файлов.
    В PHP нету автоматического загрузчика зависимостей.
    Нужно самому либо вручную, либо через spl_autoload_register, делать подгрузку файлов.
    Ответ написан
    2 комментария
  • Книги по архитектуре веб приложений?

    qfox
    @qfox
    Ответы есть у меня
    Вопрос настолько обширный, что врядли кто-то вам сможет посоветовать актуальную литературу, т.к. нужны примеры.

    Большинство хороших архитектурных решений находится в постоянной разработке и люди, которые пишут книги, часто отстают лет на 5 от прогресса. А те, кто не отстает — находятся в творчесском процессе и им некогда писать книги.

    По теме могу посоветовать смотреть в сторону ruby/nodejs/go фреймворков для различных веб-приложений и сервисов, каждый фреймворк затачивается под определенную задачу и, если есть желание эффективно работать в этой сфере, вам так или иначе придется это делать — без чтения чужого кода и участия в разработке этих самых фреймворков сейчас никуда, и это полностью заменяет литературу по теме.

    Как пример, могу посоветовать сравнить www.sinatrarb.com (ruby), expressjs.com (nodejs) и martini.codegangsta.io (golang). Все они используют схему — создаем приложение, у приложения регистриуем обработчики для get/post/других запросов, в обработчиках получаем объекты request/response, и работаем с ними. Это считается базой для любых веб-сервисов, веб-приложений.

    Когда нужны какие-то дополнительные функции — все делается независимо от этих модулей внутри колбеков, которые в них регистрируются и там зоопарк очень большой. Если нужны контроллеры, модели — есть rails, compoundjs, beego. Если нужно сделать REST — обычно, берется синатра + доп. модули, и получается что-то вроде loopback.io

    Но, повторюсь, когда это все пишется у тебя на глазах, а цикл создания книги — год-полтора — то за это время технологии уже уходят далеко вперед и хороших книг с такой глубокой проработкой вопроса будет появлятся все меньше.
    Ответ написан
    5 комментариев
  • С чего начать обучение для фриланса?

    @frees2
    Ищите заказа, и-или найдите менеджера особо приближенного к кругу заказчиков, ( у меня одно время работала тетка в универе в бронксе преподавала экономику, ищите дорогие заказы и не фигню, в свободное время от заказов изучайте интернет и языки.
    Мелкие техно, дизайн проблемы поручайте на сторону а не сами встревайте.
    Ответ написан
    Комментировать
  • С чего начать обучение для фриланса?

    Bandicoot
    @Bandicoot
    Вась-программист
    Изучите PHP, один из популярных фреймворков на нем (рекомендую Laravel) и беритесь сразу за кастомные проекты, минуя весь этот ад WP/Joomla/Bitrix
    Ответ написан
    6 комментариев
  • С чего начать обучение для фриланса?

    Sanes
    @Sanes
    Пока выучитесь, кризис закончится. Вам должно это нравиться в первую очередь. Из-под палки учить не дело.
    Ответ написан
    Комментировать
  • Web-разработка. Уровень погружения в язык программирования: PHP vs JavaScript. Где "глубже"?

    Deroy
    @Deroy
    Senior Developer, Software Architect
    Многое несомненно зависит от того как позиционируется PHP бэкенд в составе проекта,
    однако в целом если говорить про разработку приложений на PHP как такового (без зоопарка вокруг)
    список инструментов примерно следующий (представлены самые популярные)

    Стандарты - по хорошему надо прочитать и понять всё что издает php-fig в сфере юзерленд кода,
    самые важные - PSR 0-4

    Вспомогательные (обязательные) технологии - YAML, XML, CSV, JSON;
    Библиотеки "все-в-одном" - на бэкенде не водятся (да здравствует linux-way);
    Фремворки общего назначения, скелеты приложений - Yii (1,2), Symphony2, ZendFramework2;
    CMS-фреймфорки - Drupal, ... Wordpress? ищите под задачу;
    Модульность, Зависимости - Composer и все что с ним связано, PEAR/PECL (потихоньку отмирает);
    Сборка - Phing (хотя я собираю php-проект gulp'ом - у него API приятнее);
    Тестирование - PHPUnit, Behat, CodeCeption;
    Деплой(Развертывание релизов) - Mage (aka Magallanes), Deployer
    Помощники - Vargant, Docker (тестирование и разработка в готовых окружениях)

    Здесь я не упоминал того что нужно знать о самом языке и его компонентах.

    теперь поговорим о зоопарке..

    технологии и зоопарк специфичный только для PHP:

    Сервера приложений - php-fpm, apache-mod-php;
    Кэш и быстродействие - APC (APCu для PHP >= 5.5)
    дебаг - ZendDebug, XDebug, XHProf

    Далее то что не отличается от одного серверного языка к другому.
    это часть ответа безгранично велика на самом деле =)

    Сервера и прокси - Nginx, Apache, Varnish, etc.
    Кэши и NoSQL - Memcached, Redis, Mongo, etc.
    СУБД - MySQL, PostreSQL, etc..
    Поисковые индексы - ElasticSearch, Sphinx
    Очереди и межпроцессовое взаимодействие - RabbitMQ, ZeroMQ, linux-sockets, posix-treads
    Протоколы взаимодействия (4 уровень OSI) - HTTP(во всех его подробностях! просто MUST HAVE), POP, SMTP, IMAP, REPL.
    Траспортные Протоколы (3 уровнь OSI) - TCP, UDP
    Библиотеки уровня системы - cURL (абсолютный MUST HAVE - большинство взаимодействия поверх HTTP строится на этой библиотеке в абсолютном большинстве серверных скриптовых языков)
    Ответ написан
    Комментировать
  • Валидация html формы. Как сделать проверку на заполнение одного из двух обязательных полей?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    if(!document.getElementById('some-field').value && !document.getElementById('another-field').value){
    alert('Вах!..  заполнить поля забыл...');
    }
    Ответ написан
    3 комментария
  • Как не утонуть в океане информации?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    0. На хабре мир не замкнулся так же, как и на вконтакте)
    1. Когда "наткнулись" при "рабочем" поиске (когда делаете работу по текущему проекту) на интересную информацию - кладите статью (+линк) в папку рядом с проектом, применительно к которому Вы на нее набрели или отталкиваясь от темы статьи (рядом с другим проектом).
    2. По тематически-узконаправленному ("лучевому") поиску - вы найдете не более 5 статей. Это первоисточники и образовательные (примеры, производительность и т.д.) Все другие - "адский trash" и плагиат.
    3. Не ищите "от нечего делать": время потратите - толку 0.
    4. Используйте всю мощь поисковой строки гугла (символы управления приоритетами и т.д.) для отсеивания "мусорных" ссылок.
    5. На любую тему обсуждений - есть только 1 ресурс-лидер, который цитируют во всем интернете. Интересна тема - станьте участником такого сообщества и получайте уведомления по почте.
    6. Сначала планируете цель, затем идёте "в лес по грибы" за информацией. Если наоборот - всё...: Вас "засосёт" чёрная дыра технологий и читать Вы будете ВЕЧНО!!!
    7. Главное правило: статья должна прочитываться сразу или "привязываться" к вашей цели и отправляться в папку (см. п.1)
    И помните:
    тостер - для отдыха
    гугл - для работы

    UPD: Как правильно искать информацию
    Ответ написан
    14 комментариев
  • Почему не запускается gunicorn?

    @pcdesign Автор вопроса
    Проблема решается добавлением 2х строчек в файл wsgi.py

    #####################
    from __future__ import unicode_literals

    import os
    import sys
    PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
    sys.path.insert(0, os.path.abspath(os.path.join(PROJECT_ROOT, "..")))

    settings_module = "%s.settings" % PROJECT_ROOT.split(os.sep)[-1]
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", settings_module)

    from django.core.wsgi import get_wsgi_application
    application = get_wsgi_application()
    #####################

    Уж не знаю на сколько это корректно, но работает.
    Ответ написан
    Комментировать
  • Что выбрать во фрилансе: фронтенд, бэкенд или мобайл?

    @Gettoheaven
    прежде чем идти на фриланс нужно же сначала что то уметь...
    Ответ написан
    Комментировать