ФорумПрограммированиеPHP для идиотовPHP и ООП → Как избежать уродских названий классов?

Как избежать уродских названий классов?

  • kostyl

    Сообщения: 5209 Репутация: N Группа: Джедаи

    Spritz 23 мая 2010 г. 7:26, спустя 17 дней 5 часов 52 минуты

    что бля, до сих пор нифига не придумали? ууу блин, программисты йо
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 23 мая 2010 г. 7:53, спустя 27 минут 12 секунд

    class BLW_Doctors_List extends BLAM_Abstract_Minimal implements BL_Application_WidgetInterface


    class BLM_Doctors_ContactForm extends BLAM_Abstract_Minimal


    меня все и так устраивает
  • kostyl

    Сообщения: 5209 Репутация: N Группа: Джедаи

    Spritz 23 мая 2010 г. 8:16, спустя 22 минуты 38 секунд

    Абырвалг, ты просто не дошел до этого момента ;), когда это не будет устраивать

    я думаю надо оперировать и передвать, что то, что будет подразумеваться под неймспейсом, не знаю даже как и что, но вот допустим для какого то действия, контроллер возвращает представление по умолчанию:

    class Action {
     
     public fucntion run()
     {
    $namespace = null;
       $view = $this->getController()->getView($this, $namespace);
     }
    }

    что то типа того, то есть либо мы берём представление по умолчанию без передачи параметра $namespace, либо с ним, задавая его руками (или может чем то другим), если надо инстанцировать совершенно другой объект. Это абстрагирует от конкретных реализаций использования разделения пространства имён - родных или не родных.
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 23 мая 2010 г. 8:24, спустя 8 минут 12 секунд

    Абырвалг, ты просто не дошел до этого момента ;), когда это не будет устраивать


    все з точнiстю до навпаки. Был такой момент, я его перешагнул, начав использовать префиксы (BL_, BLW_, …) и сформировав четкую взаимосвязь между префиксами, названиями классов и структурой директорий.

    А еще пару недель назад стал отказываться от явного указания классов где это возможно.

    class BLM_Doctors_ContactForm extends BLAM_Abstract_Minimal
    {
    // …
    public function __construct(BL_Application $app)
    {
    $this->db= $app->lib('db'); // было BL_Database::getInstance();
    $this->userId = $app->lib('user')->getBaseInfo('id'); // BL_Auth::instance();
    }
    // …


    еще можно так делать:
    $app->lib('db', 'read');
    $app->lib('db', 'write');

    типа если у нас репликации всякие и конфиг для чтения отличается от конфига на запись
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 23 мая 2010 г. 8:29, спустя 5 минут 6 секунд

    вот в Мадженте да, названия классов уродские охуенно длинные
  • kostyl

    Сообщения: 5209 Репутация: N Группа: Джедаи

    Spritz 23 мая 2010 г. 8:30, спустя 46 секунд

    Абырвалг, ну в этом случае ты прав, это почти тоже самое что и я сказал. Суть в использовании сильной стороны php - динамической типизации.
    Фактически названия да, длинные и остаются, но их видно только в объявлении.

    Нафиг вообще мне это писать, я думаю, и так всё понятно, вечно лезу в дебри.

    Закрывайте тему нафиг

    )))))))
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 25 июля 2010 г. 8:08, спустя 62 дня 23 часа 38 минут

    namespace Application\Modules\Forum\Helpers
    namespace Application\Modules\Forum\Controllers



    namespace Application\Modules\Forum\Models
    class Topic
    {
    }

    class Post
    {
    }


    Нормуль?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 25 июля 2010 г. 8:18, спустя 10 минут 29 секунд

    ну и гавно же ваще пхп, еще и палочки из виндовс адаптировали, фу
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 25 июля 2010 г. 8:27, спустя 8 минут 36 секунд

    как по мне - так уже хоть что-то
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 25 июля 2010 г. 8:36, спустя 9 минут 9 секунд

    namespace a
    {
    }

    namespace b
    {
    }

    http://ua.php.net/manual/en/language.namespaces.definitionmultiple.php


    namespace Application\Modules\Forum\Controllers

    class Topic extends Application\Modules\Abstract\Controllers\ZendStyle
    {
     public function indexAction()
     {
       $this->context->model()->forum_topic()->collection() …
     }
    }
  • kostyl

    Сообщения: 5209 Репутация: N Группа: Джедаи

    Spritz 25 июля 2010 г. 9:59, спустя 1 час 22 минуты 34 секунды

    extends Application\Modules\Abstract\Controllers\ZendStyle

    так эта штука всё равно не динамическая, надо указывать… Я еще не успел поработать с неймспейсами, но пока мне кажется, что они красиво объявляют, но хреново инстанцируют или типа того…
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 25 июля 2010 г. 10:18, спустя 19 минут 16 секунд

    контроллер запускается автоматом классом Pyha\Core\Application, так что для меня плохое инстанцирование роли не играет. Кроме того к модели я доступ получаю через model() - то есть длинное имя класса в модели также отпадает. То же самое и с хелперами.

    Неймспейсы удобны
  • kostyl

    Сообщения: 5209 Репутация: N Группа: Джедаи

    Spritz 25 июля 2010 г. 17:03, спустя 6 часов 44 минуты 49 секунд

    Абырвалг, базара нема, удобны, но я получаю модель и часто не одну напрямую, такая вот фигня…

Пожалуйста, авторизуйтесь, чтобы написать комментарий!