Как делать не надо

934
.
Я бы тоже что-нибудь залил, да вот не знаю что. Все что делал слишком завязано на системе.
Ну вот пагинация, например, http://pastebin.com/PmDCjjVB
.
Форматирование разъехалось
.
Скидывайте что считаете нужным, там разберемся
.
3. Pagination
http://www.youtube.com/watch?v ... Hvdsc
http://youtu.be/G6lsKHjlXoA
.
Хм, не думал что его станут рассматривать. Чуть позже гляну, траффик только после полуночи появляется.
.
Screamer
Delphinum, ну впринципе всё понятно.
Уже поздно, башка не совсем варит и я на словах конкретно не могу пояснить для чего он мне понадобился.
Поэтому лови примерный код:
public function page($page = 0) {
    $page = intval($page);
    $get_total = $db->query("SELECT COUNT(*) FROM `some_table`"); 
    $total = $db->fetch_row();
    $get_total->free();
    $total = intval($total[0]);
    if ($total > 0) {
        $limit = $this->loader->plugin('pagination')->prepare('http://localhost/module/page', $total, $page);
        $result = $this->db->query("SELECT * FROM `some_table` ORDER BY `field` DESC LIMIT " . $limit['start'] . ", " . $limit['end']);
        // Ну и далее понятно ... 
    }
}


Т.е. метод prepare() возвращает стартовую и завершающую позиции элементов, которые следует отобразить.
А метод create_links() возвращает обработанный шаблон со ссылками на страницы.
Разбивать этот класс в своем проекте я не вижу смысла, т.к. нигде кроме моментов описанных выше он мне не понадобится (это что-то вроде плагина), хотя подход описанный в видео мне понравился.
.
╭∩╮ (`-`) ╭∩╮
Автору однозначный зачот, видеоуроки - это полезное и доброе дело.

Однако, сразу хочу дать одно критическое замечание по 1-му видео.
Сами идеи, о чем рассказывает автор, вполне правильные, но меня ужаснул стиль работы с IDE, меня не покидало ощущение, что автор работает не в PhpStorm, а в каком-нибудь блокноте, типа Notepad++
---
Начну с такой мелочи, как форматирование кода. На видео я вижу, как автор форматирует код с помощью "пробелов" и "забоев". Зачем? Мы же работаем не в блокноте, PhpStorm имеет лучший (на мой взгляд) форматировщик кода, достаточно нажать Ctrl+Alt+L и код будет очень красиво отформатирован, более того, стиль форматирования можно менять в настройках проекта. Форматировать можно и не весь код, а только его выделенный участок.
---
Но форматировка - это мелочи, главная претензия - это по рефакторингу

Собственно, весь процесс работы над кодом, что в 1-м уроке - это есть рефакторинг. То есть, не изменяя общего функционала и поведения класса, мы меняем имена на более понятные и "удобоваримые".

Обычно программирование через Рефакторинг (это самый современный метод) выглядит так:
1) Пишем код, особо не заморачиваясь на именах, достаточно, что нам понятно.
2) Доводим код до рабочего состояния
3) Подробно документируем (с помощью каментов PhpDoc)
4) Проводим рефакторинг, то есть внимательно осматриваем код и переименовываем переменные, свойства, методы так, чтоб соответствовало стандартам, было удобочитаемо и понятно для всех.

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

В блокноте Вам придется делать рефакторинг вручную, то есть переименовал свойство(или метод, или класс и т.д.), потом надо вручную менять все места, где это используется. Сами понимаете, что это занимает достаточно много времени, требует напряга мозга и всегда есть шанс что-то пропустить, или совершить ошибку. На видео автора я увидел именно такую (блокнотную) работу, несмотря на то, что использовалась самая продвинутая IDE PhpStorm.

Серьезные IDE, в частности PhpStorm имеют весьма продвинутые инструменты по рефакторингу.
В частности, когда Вы работаете в PhpStorm и хотите переименовать переменную, свойство, метод, или класс, достаточно поставить курсор на нужное имя и нажать F6. Далее, выскочит окошко, где Вы сможете ввести новое имя.
После этого, IDE анализирует код и сама меняет имя во всех местах (текущей видимости), где это имя используется. Все делается за секунду и шанс ошибок сведен практически к нулю.

Рефакторинг - очень удобная вещь, для этого и существуют серьезные IDE, которые берут на себя работу по правильному рефакторингу.
.
наткнулся на довольно пооезную статейку
http://habrahabr.ru/post/190440/
.
http://youtu.be/5ZbGOoVkAGI
.
AlkatraZ, коротко по каждому замечанию:
1. Отлично знаком с автоформатированием в PHPStorm и очень часто его использую (можно даже пару раз заметить как я делаю это прямо по ходу видео), но все равно не позволяю себе писать кривой код в надежде на автоформат! Я стараюсь всегда писать согласно собственному стилю, так как приходится писать и на nano и на vi, а там можно легко закривить кодом если не держать себя постоянно в форме, да и ctrl+alt+l в моей ОС блокирует систему ;)) Одним словом мне это не сложно, я больше времени трачу не на написание кода, а на его обдумывание.
2. Рефакторингом тоже частенько пользуюсь, но специально не применяю в IDE, так как видео расчитаны на новичков, а они могут не уловить процесс автопереименования переменных ;) А вообще, рефакторинг в PhpStorm это первая причина, по которой я перешел на эту IDE (вторая это опыт использования Intellij IDEA, третья это модульность, четвертая - ctrl+alt+l)
Всего: 39