ФорумПрограммированиеПыхнуть хотите?Готовые решения → Пагинатор, нах

Пагинатор, нах

  • phpdude

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

    Spritz 26 апреля 2012 г. 17:07, спустя 16 секунд

    vasa_c уже не то
    Сапожник без сапог
  • vasa_c

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

    Spritz 26 апреля 2012 г. 17:10, спустя 3 минуты 46 секунд

    Я вот не пойду зачем делать такие неймспейсы Pager\Pager ?

    Потому что Pager - неймспейс пагинатора в котором множество классов, один из которых Pager.
    Мне тоже глаза немного режет, но что делать. В нашем прекрасном питоне тоже так module.Class (даже если там один класс всего).
    Спустя 149 сек.
    захламлять конструтор вот той хуетой которая в нем не имеет никакого смысла.
    можно сделать public function init() который будет явно вызываться и своим названием както сообщать нам то, что он делает.
    захламлять конструктор хуетой небезопасно, так как в нем есть какаято неведаная хуйня которая может повредить созданию обьекта.

    рильни хуита какая-то, пардон.
    неведомая хуита может и в init().

    именно

    Извини, но здесь бы подошла фраза типа "мне нравится вот так пиздатенько писать в строчку", а никак не "надо так писать".
    В приведённых же тобой методах это вообще незачем.
  • kostyl

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

    Spritz 26 апреля 2012 г. 17:14, спустя 3 минуты 12 секунд

    kostyl
    vasa_c, есть абстрактные классы и всё такое, ну это уже каждому своё.
    ну есть и чо?

    да в принципе ничё, это я к тем методам которые можно переопределить но они ничего не делают в базовом классе. В теории )) если такая шутка получается то это не правильно вроде как…

    Хелпер Env - private $GETArray; это же приват, нах с большой буквы? во я доебался )))
    Потому там сохраняется GET.

    это про наименование, я бы назва $phpGetArray
    Мне тоже глаза немного режет, но что делать.

    go\Helpers\Pager\Helper.php
  • vasa_c

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

    Spritz 26 апреля 2012 г. 17:19, спустя 4 минуты 57 секунд

    да в принципе ничё, это я к тем методам которые можно переопределить но они ничего не делают в базовом классе. В теории )) если такая шутка получается то это не правильно вроде как…

    приведи код, какая у меня должна быть иерархия классов, чтобы чётко соответствовать теории.

    это про наименование, я бы назва $phpGetArray

    Но это и так PHP, там всё PHP :) зачем добавил, просто чтобы camelCase соблюсти? Но создатели пыха назвали эту переменную $_GET и нам с этим жить.

    go\Helpers\Pager\Helper.php

    Почему Helper, когда это не хелпер, а пагинатор?
  • kostyl

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

    Spritz 26 апреля 2012 г. 17:35, спустя 16 минут 17 секунд

    приведи код, какая у меня должна быть иерархия классов, чтобы чётко соответствовать теории.

    честно говоря, влом, я просто подумал что вдруг там может быть абстракт, но я не настаиваю, а типа говорю мол можнет быть можно как то так…
    Но создатели пыха назвали эту переменную $_GET и нам с этим жить.

    не, надо camelCase соблюсти, а не жить с каличным наименованием ))
    Почему Helper, когда это не хелпер, а пагинатор?

    Судя из этого go\Helpers\ - тут все хелперы, поэтому это Хелпер-пагинатор, а не просто пагинатор
  • vasa_c

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

    Spritz 26 апреля 2012 г. 17:42, спустя 6 минут 37 секунд

    go\Helpers\Pager\HelperPager - так лучше?

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

    спезданул - иди до конца!!
  • kostyl

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

    Spritz 26 апреля 2012 г. 17:49, спустя 7 минут 7 секунд

    go\Helpers\Pager\HelperPager - так лучше?

    да. Дело в том, что неймспейс Pager инкапсулирует в себе набор компонент, один из который непосредственно играет главную функцию. По этой парадигме называть класс в Pager.php Pager не катит, потому как он не особо отдельная компонента, раз у ж в нём есть строка неймспейса. Поэтому go\Helpers\Pager\*Pager не катит в таком случае. \Pager\HelperPager лучше чем \Pager\Pager но всё равно не то. Возможно будет лучше go\Helpers\Pager\Model, но мой идеал go\Helpers\Pager\Helper ))
  • vasa_c

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

    Spritz 26 апреля 2012 г. 17:56, спустя 7 минут 14 секунд

    мой идеал - go\Helpers\Pager\Pager
    или go\Helpers\Pager, который является и классом и неймспейсом для второстепенных компонент. но об этом остаётся только мечтать.
  • kostyl

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

    Spritz 26 апреля 2012 г. 17:59, спустя 3 минуты 22 секунды

    спезданул - иди до конца!!

    посмотрел, внимательнее, чесно говоря если уж так ООП преследовать то надо вместо метода loadItems внедрить какой-нить go\Helpers\Pager\ItemsLoader, но это не согласуется с твоей архитектурой (задумкой), просто пейджер  должен по умолчанию тогда брать что то из этого метода, а наследик брать своё. Я думаю что пагинатор просто должен считать, а не лоадить данные…
    Спустя 88 сек.
    я не говорю, что у тебя хуёвая архитектура, просто она частная ))
  • kostyl

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

    Spritz 26 апреля 2012 г. 18:05, спустя 5 минут 22 секунды

    блин чё всем похуй на Pager\Pager кроме меня?
  • vasa_c

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

    Spritz 26 апреля 2012 г. 18:06, спустя 1 минуту 21 секунду

    да всем вообще на всё похуй
  • kostyl

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

    Spritz 26 апреля 2012 г. 19:12, спустя 1 час 6 минут 19 секунд

    ага…
  • Ivan

    Сообщения: 1316 Репутация: N Группа: Адекваты

    Spritz 26 апреля 2012 г. 21:53, спустя 2 часа 40 минут 58 секунд

    Че вы выябываетесь?

        /**
    * @static
    * @param int $total
    * @param int $count
    * @param int $page
    * @return array
    */
    public static function paginate($total, $count = 30, $page = 1)
    {
    $start = $count * ($page - 1);
    $prev = (($page - 1) > 0) ? $page - 1 : false;
    $pages = ceil($total / $count);
    $next = (($page + 1) <= $pages) ? $page + 1 : false;
    $error = ((!$next && !$prev) or ($prev >= $pages) or ($page < 1));

    return $error ?
    array(
    'prev_id' => false,
    'next_id' => 2,
    'total_pages' => $pages,
    'current_id' => 1,
    'offset' => 0,
    ) :
    array(
    'prev_id' => $prev,
    'next_id' => $next,
    'total_pages' => $pages,
    'current_id' => $page,
    'offset' => $start,
    );
    }


    Зачем усложнять?

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