• Правильно ли я использую класс?

    1) Почему функции и переменные с нормальным неймингом, а класс как "Отщит"?) Никаких f - называйте все своими именами.
    2) Модель формы - выносятся в отдельный класс. Валидация полей в моделях формы. И вид тоже в отдельном файле.
    3) Использование супер глобальных переменных POST GET - не допустимо, данные должны пробрасываться/инжектится в класс, а не использоваться внутри. Как правило они используются в контроллерах в рамках MVC.
    4) Переводы и надписи выносятся тоже в отдельный файл i18n. Представьте ситуацию, вам завтра позвонили и сказали, надо сделать на немецком языке. Вы лезете в каждый класс, что бы это все исправить? А если классов 100 ?)
    5) Метод Save можно превратить в апдейт одновременно. Если в метод добавлено Id то делаете апдейт записи, если нет, то создаете.
    6) Я бы еще добавил исключений, но то уже такое, каждый делает где ему удобно.

    Почему на босса есть сеттер, а на директора add Хотя это тоже сеттер ?)
    Ответ написан
    6 комментариев
  • PHP для новичка?

    1) Самая актуальная литература всегда на английском, на русском документация и best practices - подойдет любая на первое время.
    2) Смотреть и знать нужно все, что бы оставаться профи и быть на плаву. если вы изучаете php 5.6 и выше, там нет заведомо плохих технологий или вещей, которые не используются.
    3) ~~ у каждого своё, для меня самым крутым сервисом является github.
    4) На самом деле любой. Они все имеют паттерны программирования и MVC подход. от простых к сложным, по моему мнению: Yii2, Laravel, Symfony, Zend.
    5) А программирование это техническая и точная наука. Она не любит разъяснений на пальцах. Вам придется вникать в книги и в уроки и перечитывать по два, а то и по три раза пока не дойдет, и тонну статей на хабре для уточнений.

    После всего этого чтения, читать Макконела "Совершенный код". Там общие парадигмы, правила, трюки и просто мастхев любому программисту.
    Ответ написан
    Комментировать
  • Как в yii2 сделать ссылку на главную в navbar?

    Не уверен, что после алиаса frontend нужно указывать Web
    Можно еще таким образом на главную
    Yii::$app->urlManager->baseUrl;

    А вообще можно аналогичным образом сделать для бекэнда.
    Тостер
    Ответ написан
    Комментировать
  • Yandex map создает две карты, как исправить?

    HanDroid
    @HanDroid Автор вопроса
    Решил вопрос таким образом сорс кода. поиск по адресу.

    <input type="text" id="find" name="plz" onchange="address_value(this);"/>
    
    <script type="text/javascript">
        var myMap, myPlacemark;
    
            function address_value(city_name)
            {
                alert(city_name.value);
    
                $.ajax({
                    url: 'http://geocode-maps.yandex.ru/1.x/?geocode='+ city_name.value +'&format=json&results=1',        
                    dataType : "json",                   
                    success: function (data) { 
                        var coords = data.response.GeoObjectCollection.featureMember[0].GeoObject.Point.pos;
                        var coordMap = coords.split(' ');
                        var longitude = coordMap[0];
                        var latitude = coordMap[1];
    
                        function init () {
                            if(myMap){
                                myMap.destroy();
                                myMap = null;
                            }
                            myMap = new ymaps.Map("map", {
                                center: [latitude, longitude],
                                zoom: 16
                        });
    
                            myPlacemark1 = new ymaps.Placemark([latitude, longitude], {
                                hintContent: 'Москва!',
                                balloonContent: 'Столица России'
                            });
    
                            myMap.geoObjects.add(myPlacemark1);
                        }
                        ymaps.ready(init);
                    }
                });
            }
    </script>
    
    <div id="map" style="width: 100%; height: 400px"></div>
    Ответ написан
    Комментировать
  • Как развиваться начинающему web-разработчику?

    Коротко
    Карта развития Web Разработчика

    Демагогия
    Не переживайте, не все сразу. Есть вещи до которых можно дойти только опытом и практикой. Это касается всех программистов в целом. Касательно веба, тут очень много упирается в то, каким именно специалистом вы хотите себя видеть в будущем. Есть фулстак - когда человек знает большую часть технологий их связку, но всегда будет ощущать недостаток тонкостей на хай левеле. В то же время специалист заточенный под определенные задачи будет лучше фулстака, но так же будет нуждаться в том же фулстаке, что бы объеденить.

    Живой пример: Есть толковый фронтендер(или бекендер по JS) пишет морду сайта на JS Фреймворке. Есть гуру бэкенда пишет API сайта. В случае с фулстаком(образно) он пишет обе задачи сам, но заведомо понятно, что он пишет это дольше и не факт что по последнему слову будет сделано.


    Что нужно для развития дальше:
    - Читайте блоги зарубежных программистов, они делают отличные архитектуры как в самом коде, так и решения в DB.
    - Фреймворки PHP и JS - чем больше их будет тем лучше. Все они ускоряют разработку. Все чаты, соц авторизации, регистрации,и прочие первоочередные задачи давно уже написаны. Вы можете концентрироваться на более важных задачах.
    - ООП тут очень спорный вопрос, на определенных этапах разработки оно решает, но когда этот уровень появляется, чаще всего прибегают к другому языку программирования и переписывают проект в угоду скорости (С++, Java, Python). Понимать нужно, поскольку фреймворки построены на этих парадигмах, но самостоятельно придумывать вам гибкие решения вряд ли придется(по крайней мере до Senior-а точно).
    - Не изобретайте велосипеды. Разбирайтесь в чужом коде(Этот навык очень ценен после "решить/найти решение любую задачу"). Любой магазин чаще всего будет написан в лучшем случае на фреймворке, в худшем на OpenCart, Woedpress - что просто идиотизм, это блоговая система БЛОГОВАЯ. из за тренда выкручивают яйца.
    - Учить английский и работать не на СНГ, Укр или места постсоветского пространства. Искать фирмы зарубежных филиалов и работать там. Поскольку так или иначе там уже работают профессионалы и знакомы с западным рынком, европейским. Там пишутся интересные проекты и появляются интересные решения.
    Ответ написан
    7 комментариев
  • Yii2 ЧПУ как указать в route полученный параметр из запроса?

    Странный синтаксис. В config/main указываете? Вроде без паттернов идет, в духе
    'urlManager' => [
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'rules' => [
                    'Путь который должен быть показан - /' => 'куда обращается site/index',
                    '<module>/<controller>/<action>' => '<module>/<controller>/<handler:action>',
                ],
            ],

    Не знаю как вы оформили хендлер и чем он является по своей сути, но у меня с компонентом так срабатывало.
    Ответ написан
    Комментировать
  • Как в yii2 сделать для формы с переменным количестовм checkBox и валидацию?

    $categories = Category::find()->indexBy('id')->orderBy('id')->all();
    $items = ArrayHelper::map($categories,'id','title');
    <?php $form = ActiveForm::begin(); ?>
    <?= $form->field($model, 'checkboxList')->checkboxList($items); ?>
     <?php ActiveForm::end(); ?>


    код я привел условно, можно в модели метод сделать и запрашивать в контрллере.
    Ну а правила сами смотрите, тип boolean, и обязательно или не обязательно. остальное по обстоятельствам.
    Ответ написан
    Комментировать
  • Что такое Model в МVС?

    Модели являются центральным местом представления бизнес-данных, правил и логики. Они часто повторно используются в разных местах. В хорошо спроектированном приложении, модели, как правило, намного больше, чем контроллеры.

    В целом, модели
    • могут содержать атрибуты для представления бизнес-данных;
    • могут содержать методы с реализацией бизнес-логики;
    • не следует напрямую задавать запрос на доступ, либо сессии, либо любые другие данные об окружающей среде. Эти данные должны быть введены контроллерами в модели;
    • следует избегать встраивания HTML или другого отображаемого кода - это лучше делать в видах;
      избегайте слишком большого количества сценариев в одной модели.


    Best Практик из Yii2
    Ответ написан
    8 комментариев
  • Как практиковать AJAX без сервера?

    Вам в любом случае понадобится сервер.
    1) Если знаете чуть чуть Php то можно скачать OpenServer, xxamp, и просто нажать на кнопку запустить сделать базу и подсмотреть в интернете коннект на пыхе. и практиковаться. А вообще любой гайд про Ajax в первых уроках показывают как настроить сервер

    2) Поставить Node. js - в целом на ноде можно писать JS скрипты любые и смотреть как они работают. Опять же посмотреть в интернете как его установить и запустить одной командой.
    Ответ написан
    Комментировать
  • Yii2 Search Model не известная колонка, что делаю не так?

    HanDroid
    @HanDroid Автор вопроса
    Решил обойтись без поля поиска. вывел DropDown Листом в гриде
    [
                    'attribute' => 'category_id',
                    'value' => 'category.title',
                    'filter' => \common\models\Category::getParentsList()
                ],
    Ответ написан
    Комментировать
  • Как улучшить производительность yii v.1 проекта?

    1) Поставить дебагер
    2) посмотреть что жрет ресы.
    3) релейшены тянуть жадной загрузкой, а не foreach
    4) Сложные запросы перевести в QB или Raw Query
    5) Можно глянуть и отрубить не нужное логгирование.

    P.s терпеть не могу проекты от индусов. Контроллеры по 1250 строк КАРЛ! В доке написано минимум строк в контроллеры, нет же.... Давайте весь сайт в один контроллер запихнем!
    Ответ написан
  • Как реализовать выбор размера в интернет магазине ( логика )?

    Реализация бывает разная и каждый делает все по разному. Как писал, xmoonlight , из-за того что в бд товар один, к нему сложно припаять целу стопку цветов, размеров и других критериев.

    Решить можно разными способами, сложными но гибкими, легкими но харкодом.
    Гибко, создается таблица на каждый критерий например размеры. Админ может управлять размерами т.е. заносить новые стандарты. Товары формируются следующим образом. Есть главный товар(на нем вся инфа) и дочерние товары (связь один ко многим внутри таблицы товаров), они имеют эти разные критерии. В главном товаре показываем доступные варианты размеров и цветов.

    Хардкорно
    Когда вы знаете заранее определенные критерии, пилите константы и серриализуете в одну из колонок в товаре либо JSON всю пачку всех критериев. При таком варианте админ не добавит новых размеров.
    Ответ написан
    Комментировать
  • Почему yii2 цепляет модель User?

    Там по умолчанию есть миграция, разверните её. Из коробки идет же модель юзеров.
    Ответ написан
    Комментировать
  • Как реализовать выбор города на сайте?

    Хабриус выручай!
    ну вы поняли
    Актуально по сей день )
    Ответ написан
    Комментировать
  • Как узнать размер (кол-во занимаемых байт) объекта в PHP?

    $before=0;
    $a='испытуемая переменная либо массив или объект';
    $before = memory_get_usage();
    unset($a);
    echo 'размер переменной составил: ',$before-memory_get_usage(),' байт';
    Ответ написан
    Комментировать
  • Как сделать в Yii1, чтобы в модуле по url можно было ссылаться на action view без слова view?

    'customer/suppliers/<id:\d+>' => 'customer/suppliers/view',


    Справа точный роут, слева как должно выглядить. можно хоть так
    'заказчик-поставщики-<id:\d+>' => 'customer/suppliers/view',

    Но пуникод - извращение )
    Ответ написан
    2 комментария
  • Путь к img как задать?

    Пробуйте так выводить изображение
    <?php echo Html::img('@web/images/icons/icon10.png') ?>


    посмотрите Predefined Aliases и указывайте в начале, так сразу будет знать откуда их брать.
    Ответ написан
    Комментировать
  • CMS на базе Yii2?

    На сегодняшний момент знаю только youpe
    В остальных случаях, готовых решений нет и собирать самому из модулей.
    Ответ написан
  • Yii2 авторизация через фейсбук?

    Там же есть graph fields Link он возвращает такого формата
    "link":"https://www.facebook.com/1091552020"

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

    Я ставил этот плагин и работаю с ним часто, что именно у вас не выходит? к тому же, смотрите что вы получаете за данные в вендоре в service.
    Ответ написан
    Комментировать