All streams
Search
Write a publication
Pull to refresh
-5
0
Ваня @Padaboo

Пользователь ЭВМ

Send message
Прежде чем статья попала в гугл ее кто то вероятно написал и обсудил. Думаю в гугле есть не все.
Там "prepared statement" и в таких местах обычно приводят типы там где это возможно (int)
За опен сорс в разумных пределах)
Лицензия? Если вы не будите делиться наработками и техническими подробностями сектор остановится.
Я к примеру собрался писать игру на java: jmonkeyengine. Там будет достаточно проблем и на клиенте и на сервере. Наработки буду выкладывать в хаб так как люди которые затят научиться программированию или сделать тоже самое просто несмогут этого сделать. Неотчего будет отталкнуться.
С одной стороны да, с другой нужно писать "паттерны" та как мета теги почти везде и всегда динамические, например: Отделение ВТБ 24 ${Новосибирск} Филиал № 5411 | concat{Все для бизнеса 2biz.net}
Посмотрите генератор gii он выдает одинаковые контроллеры
Спорный вопрос: оборачивать каждую конструкцию языка в класс? — думаю это нехорошо, некоторые узкие места в PHP переписываются на С для улучшения производительности и экономии памяти. Тоесть с точностью до наоборот.
Идея насчет тайтла в коде интересная мысль:
<?php

class MetaTagMap extends CComponent{

    public static $map = [
        'credits/index' => [
            'description' => 'Взять кредит без залогов и поручителей',
            'keywords'    => 'кредит,взять кредит,кредит без поручителей,кредит без залогов,кредит без залогов и поручителей',
            'title'       => "Взять кредит"
        ],
        'trucks/index' => [
            'description' => 'Поиск грузоперевозчиков',
            'keywords'    => 'перевезти груз,грузоперевозки',
            'title'       => "Грузоперевозки"
        ],
        'buildings/index' => [
            'description' => 'Коммерческая недвижимость',
            'keywords'    => 'аренда офиса,аренда склада,купить склад,купить офис,купить здание,арендовать здание',
            'title'       => "Недвижимость"
        ],
        'biztrade/index' => [
            'description' => 'Купить бизнес',
            'keywords'    => 'купить бизнес,купить долю,купить франшизу',
            'title'       => "Купить бизнес"
        ],
        'materials/index' => [
            'description' => 'Товары ',
            'keywords'    => 'купить,',
            'title'       => "Купить "
        ],
    ];

    public static function getKeywords($key, $add = ''){
        return self::$map[$key]['keywords'].$add;
    }

    public static function getTitle($key, $add = ''){
        return self::$map[$key]['title'] . " ". $add ." | ".Yii::app()->name;
    }

    public static function getDescription($key, $add = ''){
        return self::$map[$key]['description']. ' ' . $add;
    }
} 
С вьюхами там несколько вариантов: 1)php сам по себе шаблонизатор. 2)стандартные вещи типа Chtml 3)Bootstrap 4) Любой вариант. Фреймворк очень гибкий.
Есть проект, его делал один человек — его уволили. Пришли 3 новых программиста им код непонравился — начали переписывать — все писали на разных языках в разном стиле и парадигмах (сторонники разных подходов). И таких проектов много. Думаю от примеров из документации отталкиваться правильнее — он следует правилам кодирования язка и стилю фреймворка.
Я сейчас переезжаю с PHP на Java достаточно большая разница — постараюсь незахватить старых привычек.
С первым согласен это в общем то одно и тоже создать экшены или наследоваться от общего. На мой взгляд отдельные экшены более гибкая штука. Похоже на хэндлер больше.
Да, все стандартные методы реализованы в базовой модели, а уникальные в наследнике — но в итоге вызов методов происходит в контроллере. Мы же не переносим всю логику в модель — а только делаем вызов или нет? Это может по разному выглядеть в контроллерах так:
        $model = Cities::model()->findAll([
            'condition' => 'name like :term',
            'params' => [
                ':term' => "%$term%"
            ]
        ]);

        $arr = [];

        foreach($model as $city){
            $arr[] = ['id' => $city->id, 'value' => $city->name];
        }

или так
$model = Cities::model()->findByName($name);

        $arr = [];

        foreach($model as $city){
            $arr[] = ['id' => $city->id, 'value' => $city->name];
        }

Или так:
$arr = Cities::model()->findByNameArray($name);

Но речь идет о повторном использовании кода контроллера.
Думаю лучше обратиться к документации, кстати отличная тема для статьи и хаба. Осваивать новую версию и описывать миграции.
–4 Это не кода на 3 с минусом, а просто html.
Совершенно согласен фреймворки, паттерны и подходы меняются время от времени — некоторые возможности зачастую не используются — по причине неудобства. Суть в рабочем коде, его можно менять как захочется.
Нормальные формы — это тоже своеобразные правила которые можно и нужно нарушать в пользу скорости кода, просто аналогия. Модель может быть и будет разная, я про типовые вещи findByPk().
Смотрите как теперь выглядит контроллер — насколько меньше кода:
Если я захочу поменять что то в 10 контроллерах, мне нужно будет поменять это только в одном экшене который к ним прикрепляется, так выглядит контроллер:
Yii::import('application.controllers.CrudController');
class MaterialsController extends CrudController{}
Именно в этом коде экшены созданы для тех контроллеров который были сгенерированы модулем gii для работы с моделями. 5 моделей и 5 контроллеров с одинаковым содержимым.
Чистота кода она конечно важна, но так можно: рефакторить, улучшать, "подкрашивать", переписывать код до бесконечности — потратить кучу времени которое стоит дороже чем красота кода.

Information

Rating
Does not participate
Location
Уфа, Башкортостан(Башкирия), Россия
Date of birth
Registered
Activity