ЗАКАЗАТЬ

Хотите научиться создавать профессиональные движки на PHP и MySQL с применением ООП и паттерна MVC?

Михаил Русаков

Здравствуйте! Меня зовут Михаил Русаков. Я уже много лет занимаюсь программированием, а последние несколько лет созданием сайтов. Я создаю самостоятельно и все свои сайты, и ещё делаю сайты на заказ. И последние несколько лет занимаюсь разработкой движков, причём для каждого сайта создаю отдельный движок.

Когда-то давно я создавал сайты на Joomla, но достаточно быстро разочаровался в этой системе по следующим причинам:

1-я причина

1-я причина

Трудность расширения функционала. Вы напрямую зависите от сторонних разработчиков, которые либо сделают какой-то функционал, либо не сделают. И что самое печальное не существует расширения идеально подходящего под Ваши задачи. Всегда чего-то, да не хватает. Либо, наоборот, столько лишнего, что замучаешься отключать. Плюс каждое расширение – это дополнительная уязвимость на сайте и дополнительные ошибки. Поэтому придётся ещё и постоянно ждать обновлений расширения и регулярно его обновлять. Правда, проблему с расширениями можно решить, если заказывать их за деньги, либо создавать самому, но тут уже нужны знания.

2-я причина

2-я причина

Безопасность. «Стандартный движок взламывается стандартно» - запомните эту фразу. Причина постоянных взломов – не криворукость программистов, а открытость исходного кода и популярность. Чем популярнее движок, тем больше инструкций в Интернете по его взлому. Причём инструкции эти настолько просты, что по ним сможет взломать Ваш сайт любой школьник. Как следствие, будут постоянные взломы, а Вы будете регулярно восстанавливать сайт из бэкапа и ждать новых обновлений. Когда несколько лет назад мой сайт был на Joomla, его взламывали стабильно раз в неделю и загружали вирусы. При этом его посещаемость тогда была от силы 100-150 человек в сутки. Более того, мои коллеги мне рассказывали, что даже сайты с нулевой посещаемостью так же взламывают. Скорее всего, это уже роботы, которые лазят по Интернету, находят сайты на готовых движках, взламывают их и загружают свои вирусы на них. То есть даже не люди уже взламывают сайты, а готовые программы. Поэтому если Вы попали в поисковую систему, значит, Ваш сайт уже под угрозой, и не важно, какая у него посещаемость.

3-я причина

3-я причина

Поисковая оптимизация. Менее значимый фактор, но он тоже имеет место быть. Сейчас создаются ежедневно тысячи сайтов, и это только в Рунете. В этой огромной конкуренции крайне трудно поисковикам выделить качественные сайты. Поэтому существуют сотни факторов, влияющих на выдачу. И огромное количество факторов отвечает за внутреннюю оптимизацию: насколько чистый код HTML+CSS, насколько много там «скрытых» элементов, насколько много вообще кода и насколько быстро грузится страница. Но также у поисковиков одно из лидирующих мест занимает движок, на котором сделан сайт. Почему это так важно для них?

Всё очень просто. Допустим, перед Вами поставили задачу: есть 2 водителя и нужно определить, кто из них с большей вероятностью разобьёт свою машину. Один водитель копил на неё 10 лет, усердно и долго работал, а другому подарили на 18 лет. Я думаю, что каждый из Вас предположит, что тот, кто долго копил и вложил много труда с большей ответственностью будет относиться к своему автомобилю, чем тот, кому она досталась нахаляву. Отсюда и вероятность того, что человек, копивший на автомобиль 10 лет, с меньшей вероятностью её разобьёт, чем тот, кто её получил сразу и без труда. Безусловно, это не является обязательным, но это вероятность. Если взять не двух водителей, а 100 000 хотя бы, то статистика уже будет явной.

Аналогично рассуждают и программисты поисковых систем. Если сайт создан не на готовом движке, то со значительно большей вероятностью данный сайт является более качественным, поскольку его создатель относится к нему ответственно. А если сайт сделан на готовом движке, то велика вероятность, что он через пару недель будет заброшен, поскольку на его создание человек потратил от силы 1 день.

А теперь пройдёмся по тем же моментам и поймём, чем же лучше сайт на своём собственном движке?

1-я причина

1-я причина

Функционал сайта зависит только от Вас. Вам ни что не мешает создать что-то новое на сайте или изменить что-то старое.

2-я причина

2-я причина

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

3-я причина

3-я причина

Улучшенная поисковая оптимизация. Помимо того, что тут Ваш движок, а это уже плюс, Вы ещё не будете создавать лишний функционал, который всегда имеет место на готовых движках. Поскольку не будет прокруток «лишнего кода», Ваш сайт будет грузиться заметно быстрее, что крайне положительно скажется всё на той же поисковой оптимизации. Так как до сих пор скорость загрузки страниц является одним из важнейших факторов, особенно в регионах с плохим Интернетом. Когда мой сайт был на Joomla, движок выводил страницу примерно в 7 раз медленнее, чем сейчас с моим движком.

Но если сайт на собственном движке лучше, чем на готовом, то почему же так много сайтов на готовых движках?

Самая главная причина: создавать свой движок – задача не из лёгких. Пожалуй, это единственная причина. И многие, взвешивая все за и против, выбирают готовый движок. Многие не знают, что движок – это плохая идея. Многие просто не понимают, зачем создавать что-то своё, если уже есть готовое? И лишь немногие могут трезво оценивать плюсы и минусы, и они, в большинстве случаев, создают сайт на своём движке (либо самостоятельно, либо на заказ).

Неужели готовые движки – это такое зло?

Нет, конечно. Простой пример: Вам нужно сделать какой-нибудь сайт для школы или института (за зачёт, например). Зачем тратить кучу времени и сил, когда можно просто использовать готовый движок.

Или, например, Вы хотите просто вести свой блог. Вам не нужна какая-то мега-посещаемость из поисковых систем, никакой чудо-функционал Вам так же не потребуется, а для безопаности Вы будете регулярно обновлять движок. Так зачем создавать что-то своё? Гораздо разумнее в данном случае будет взять тот же WordPress.

И это не единственные примеры, когда готовые движки – оптимальный выбор.

А когда стоит использовать свой движок?

Хорошо, сайт на своём движке лучше, но как его создать?

Когда-то давно я сам задался этим вопросом. Я перелопатил десятки книг и сотни сайтов, пытаясь найти информацию по этой теме. И абсолютно все, что я находил, было одним из следующего:

  1. Бесконечно сильно устаревший код, который при запуске выдаст кучу ошибок.
  2. Процедурный стиль программирования, который для сложных систем – абсолютно не разумен.
  3. Какие-то абстрактные простейшие примеры, не имеющие ничего общего с тем сложным, что должно быть.
  4. Откровенно убогий код. Где использовались миллионы echo, тогда как в реальности оно должно быть использовано только 1 раз. Данный код подходит для небольших скриптов и сайтов, но совершенно не приемлем для более-менее сложных проектов.
  5. Использование готовых фреймворков. Использование фреймворка – это что-то по типу готового движка, но только в мире программирования. По сути с теми же минусами, но только в значительно меньшей степени, поэтому, в целом, их использование я одобряю. Однако, в идеале – их лучше не использовать. Но вернёмся к этому типу источника. Стоит отметить, что он достаточно бесполезен, поскольку разработка на фреймворке заметно отличается от разработки движка без него. Но многие идеи я как раз почерпнул из этих источников.

Собственно, всё. Больше я так ничего полезного и не нашёл. Дальше я стал сам думать, анализировать те же готовые движки, и, главное, создавать всё новые и новые движки для самых разных сайтов. Каждый раз улучшая свой подход к созданию движка. И не так давно я достиг некого финала, когда уже каждый последующий движок я создаю по единому алгоритму, практически ничего не меняя. Это позволило мне сделать вывод, что я достиг определённого уровня, когда уже настолько всё хорошо, что менять особо и нечего. Я решил, что надо поделиться этими знаниями с другими, ведь не каждый сможет, как я, искать решение много лет.

Какие особенности у хорошего движка?

Так где научиться создавать такие движки?

ПРЕДСТАВЛЯЮ ВАШЕМУ ВНИМАНИЮ СВОЙ НОВЫЙ ВИДЕОКУРС
«СОЗДАНИЕ ДВИЖКА НА PHP И MySQL 2.0»

Видеокурс

Часть 1. ТЕОРИЯ

Первая часть данного курса теоретическая.

Меню

Она бесконечно важна, поскольку прежде чем создавать, нужно чётко представлять, что будет в итоге создаваться. В этом разделе Вы всё увидите. Разберём подробнее каждый урок из этого раздела.

1-й урок. Как проходить курс. Здесь Вы узнаете, как наиболее эффективно проходить данный курс.

2-й урок. Общая структура движка. Важнейший урок, из которого Вы узнаете общую структуру движка, который мы будем создавать в курсе.

3-й урок. Разбор ядра. В данном уроке мы с Вами подробно разберём ядро и классы, которые будут созданы в практической части курса. Из этого видео Вы узнаете, какой класс для чего нужен и за что отвечает.

4-й урок. Разбор адаптеров. Из этого урока Вы узнаете, для чего нужны адаптеры и где они используются. А также какие адаптеры будем создавать уже мы в курсе.

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

6-й урок. Разбор валидаторов. Урок, в котором будет разобран механизм проверки данных перед их отправкой в базу данных. Все нюансы Вы узнаете уже из этого урока.

7-й урок. Разбор маршрутизатора. Здесь Вы узнаете о механизме генерации страниц по запросу пользователя с использованием различных контроллеров. Что это за контроллеры, как они выглядят – всё это Вы узнаете из этого видео.

8-й урок. Разбор модульной структуры. Одна из ключевых частей моего подхода к созданию движка – это модульность. То есть каждый некий самостоятельный блок – это отдельная самодостаточная единица, имеющие свои свойства и TPL-файл для представления. Об этом подробно Вы узнаете из этого последнего урока теоретической части.

Часть 2. ПРАКТИКА (Создание MyRusakov.ru)

Меню

Особенностью практической части является создание движка для моего сайта - MyRusakov.ru. На входе у нас будет готовая вёрстка для сайта, а на выходе данной части курса мы должны получить уже полноценный сайт. Теперь перейдём к разделам данной части.

Раздел 1. ЯДРО

Меню

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

1-й урок. Создание базы данных. Здесь мы создадим все таблицы, которые нам будут нужны для создания сайта. Это не относится напрямую к ядру, но это первое, что нужно делать.

2-й урок. Создание структуры движка. Здесь Вы узнаете, какая должна быть структура файлов и папок, какие важнейшие файлы нужно создать, чтобы максимально обезопасить свой сайт.

3-й урок. Создание конфигурационного файла. В этом видео мы с Вами создадим файл настроек нашего сайта. Здесь также есть несколько рекомендаций, о которых знают немногие, но их крайне желательно соблюдать. Это так же касается безопасности и грамотности самого кода. Обо всём об этом я здесь рассказываю.

4-й урок. Создание класса для работы с базой данных. Здесь мы обсудим безопасность при выполнении запросов, напишем соответствующий код. В конце урока, у нас будет готовый класс по работе с запросами к базе данных.

5-й урок. Создание класса Select. Данный класс отвечает за работу с SELECT-запросами. Эту идею я взял из Zend Framework, и она идеально подошла к моему подходу создания движка.

6-й урок. Создание класса для работы с объектами. Под объектами здесь подразумевается запись из определённой таблицы, то есть для каждой таблицы свой класс. Но в этом уроке разбирается особый принцип создания этих классов. Он резко отличается от того, что я делал ранее. И именно эту идею я взял из той англоязычной книги. Всё это Вы узнаете из этого урока.

7-й урок. Создание класса для работы с запросами. В данном видео будет создан класс для работы с POST и GET запросами. Вы узнаете важные моменты по безопасности этих запросов, которые будут учтены при разработке этого класса.

8-й урок. Создание класса для работы с URL. Важный урок по созданию класса для работы с URL-адресами. Из него Вы узнаете, что должен делать данный класс. Безусловно, всё это мы реализуем в этом видео.

9-й урок. Создание класса Validator. Данный класс является абстрактным и общим для всех классов, отвечающих уже за проверку определённого типа данных. Важность этого класса трудно переоценить, и его создание Вы увидите в этом уроке.

10-й урок. Создание класса ValidatorException. При некорректности входящих данных будет выбрасываться исключение, и этот класс исключения мы сделаем в этом видео.

11-й урок. Создание шаблонизатора. В этом видео Вы увидите, как будет реализована часть по выводу данных на страницу в браузере пользователя.

12-й урок. Создание маршрутизатора. Маршрутизатор - это механизм, который будет анализировать запрос пользователя и вызывать соответствующий объект для генерации определённой страницы. Такой механизм и будет создан в данном видео.

13-й урок. Создание контроллера. Контроллеров, вообще говоря, будет много. Но в данном видео мы создадим абстрактный класс – родительский для всех остальных. Как обычно, всё с детальным разбором: что, где и зачем нужно.

14-й урок. Создание класса для модулей. В данном видеоуроке Вы увидите процесс создания абстрактного класса для модулей сайта. Если не понять, как он работает, то Вы не сможете использовать ядро для других сайтов. Поэтому данный урок очень и очень важный.

15-й урок. Создание класса FormProccessor. Этот класс отвечает за обработку данных, пришедших из форм. Если Вы уже знаете PHP, то должны были обратить внимание, что формы обрабатываются однотипно. Я максимально возможно выделил всю общую часть и вытащил в этот класс. Таким образом, Вы увидите создание того, что сэкономит в будущем огромное количество времени по обработке форм. А про уменьшение количества кода, переносимость и повышенную защиту от случайных ошибок я вообще молчу.

16-й урок. Создание класса для работы с сообщениями сайта. В этом видео Вы увидите процесс создания класса для работы с системными сообщениями сайта, которую имеют место быть практически на каждом сайте.

17-й урок. Создание класса для отправки e-mail. Важнейший урок, ведь очень часто письма попадают в спам или вообще не доходят, либо приходят, но с неправильной кодировкой. Все эти проблемы можно свести к минимуму, если написать правильный код отправки e-mail. И этот код будет написан прямо на Ваших глазах, разумеется, с подробными комментариями.

Раздел 2. АДАПТЕРЫ

Меню

В этом разделе Вы увидите процесс создания адаптеров, служащих посредниками между ядром и требуемым интерфейсом конечного сайта.

1-й урок. Создание адаптера для DataBase. В этом видео будет создан адаптер для класса, отвечающего за работу с базой данных.

2-й урок. Создание адаптера для Select. В этом видео мы разберём создание адаптера для класса, отвечающего за работу с SELECT-запросами.

3-й урок. Создание адаптера для ObjectDB. Здесь будет показано расширение абстрактного класса AbstractObjectDB функционалом, который нам потребуется для MyRusakov.ru.

4-й урок. Создание адаптера для Mail. Данный урок содержит создания класса-адаптера для отправки e-mail.

5-й урок. Создание адаптера для Module. В этом уроке мы напишем адаптер для работы с модулями именно для сайта MyRusakov.ru

Раздел 3. ВАЛИДАТОРЫ

Меню

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

1-й урок. Валидатор для хэша. В данном уроке будет создан класс, отвечающий за проверку хэша.

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

3-й урок. Валидатор для даты. В данном уроке Вы увидите, как проверяется дата на корректность ввода. Здесь есть определённые нюансы, о которых Вы и узнаете.

4-й урок. Валидатор для e-mail. В этом видео мы создадим валидатор для проверки e-mail адресов, вводимых пользователями.

5-й урок. Валидатор для ID. Тоже важнейший класс, который так же необходим практически на каждом сайте с базой данных.

6-й урок. Валидатор для изображений. Здесь будет создан класс, отвечающий за проверку имён файлов с изображениями.

7-й урок. Валидатор для IP-адреса. Из этого видео Вы узнаете, как проверять на корректность IP-адреса.

8-й урок. Валидатор для логина. В данном уроке будет реализован механизм проверки логина.

9-й урок. Валидатор для описания. Урок по проверке корректности передаваемого мета-тега description.

10-й урок. Валидатор для ключевых слов. Из данного урока Вы увидите проверку ключевых слов, которые подставляются в мета-тег keywords.

11-й урок. Валидатор для имени. Здесь Вы увидите, как правильно проверять на корректность имена пользователей.

12-й урок. Валидатор для пароля. В этом уроке будет создан валидатор для проверки пароля. В том числе, будет учитываться и его сложность.

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

14-й урок. Валидатор для небольшого текста. Текст статьи и текст комментария – разные вещи. Нельзя позволять пользователям отправлять большие объёмы данных, иначе они начнут этим умышленно злоупотреблять. Поэтому создаётся отдельный валидатор именно для небольшого объёма текста.

15-й урок. Валидатор для заголовков. Различные заголовки тех же статей так же нуждаются в проверке, и в этом видео будет создан валидатор для их проверки.

16-й урок. Валидатор для URI. Данный урок посвящён проверке URI-адресов.

17-й урок. Валидатор для URL. В этом видео Вы увидите создание валидатора для проверки на корректность URL-адресов.

Раздел 4. ОБЪЕКТЫ

Меню

В данном разделе Вы увидите, как создаются классы для самых различных объектов из базы данных.

1-й урок. Создание класса для статей. В этом видео будет создан класс для объекта «Статья».

2-й урок. Создание класса для разделов. Здесь Вы увидите создание класса для разделов.

3-й урок. Создание класса для категорий. В этом уроке Вы увидите создание класса для удобной работы с категориями сайта.

4-й урок. Создание класса для комментариев. Отдельный объект для работы с комментариями будет создан в этом видеоуроке.

5-й урок. Создание класса для курсов. На сайте MyRusakov.ru есть блоки, где выводятся различные курсы. Для них будет так же создан отдельный объект.

6-й урок. Создание класса для меню. Каждый пункт меню – это отдельный объект, который, безусловно, нуждается в своих свойствах и методах. Поэтому в данном видео будет создан класс для меню.

7-й урок. Создание классов для опроса. Здесь будет несколько классов, каждый из которых будет отвечать за свой тип: класс для самого опроса, класс для варианта ответа и класс для голоса.

8-й урок. Создание класса для цитат. На сайте MyRusakov.ru есть блок с умными цитатами, которые хранятся в базе данных, и для них так же необходим отдельный класс, который будет нами создан в этом видео.

9-й урок. Создание класса для пользователей. Достаточно сложный класс, но все эти моменты я подробно разберу в этом уроке.

Раздел 5. ДОПОЛНИТЕЛЬНЫЕ КЛАССЫ

Меню

В данном разделе создаются вспомогательные классы, которые нам необходимы для сайта MyRusakov.ru. Впрочем, эти классы, скорее всего, потребуются и для других сайтов тоже.

1-й урок. Создание класса для капчи. Здесь есть много нюансов по выводу читабельной капчи, но в то же время максимально затруднённой для роботов. Подобную капчу мы с Вами здесь и нарисуем, разумеется, оформив её в виде отдельного класса.

2-й урок. Создание класса JSValidator. Бесконечно полезный класс по проверке форм на JavaScript. Фактически, все необходимые проверки подключаются к форме непосредственно ещё в PHP. А в JavaScript мы напишем небольшую библиотеку, которая реализует проверку форм. Таким образом, Вам уже не надо будет создавать каждый раз отдельную функцию для проверки очередной формы. Достаточно будет задать ряд параметров, согласно которым будет осуществляться проверка, а всё остальное сделает код, который в этом уроке мы и напишем.

Раздел 6. МОДУЛИ

Меню

В этом разделе Вы увидите создание самых различных модулей для сайта MyRusakov.ru. Будут разобраны все классы со всеми свойствами и методами, а также TPL-файлами, отвечающими за каждый модуль. Итак, вот какие уроки Вас ждут:

1-й урок. Создание модуля для мета-тегов. Достаточно универсальных для самых разных сайтов модуль. И его создание Вы увидите в этом уроке.

2-й урок. Создание модуля для верхнего меню. В этом видео Вы увидите создание модуля для верхнего меню.

3-й урок. Создание модуля для главного меню. Поскольку меню на сайте двухуровневое, то в этом уроке Вы узнаете, как выводить меню, в том числе и многоуровневые. Безусловно, необходима рекурсия, а как это всё объединить вместе с TPL-файлами – это Вы узнаете из этого урока.

4-й урок. Создание модуля для верхней части. В этом видео Вы увидите, как делается модуль для конкретной части страницы. Это совершенно универсальный модуль, и такие модули надо уметь создавать в обязательном порядке.

5-й урок. Создание модуля для опроса. Этот модуль содержит цикл по выводу вариантов ответа для опроса. Как вмещается цикл в TPL-файл, Вы узнаете из этого видеоурока.

6-й урок. Создание модуля для курсов. На моём несколько блоков, относящихся к курсам. Разумеется, создавать отдельные модули для каждого однотипного блока – неразумно. Однако, кое-какие принципиальные отличия у них есть (например, у одного блока есть форма подписки, у другого нет). Как обрабатывается это различие, Вы узнаете из этого видео.

7-й урок. Создание модуля для цитат. В этом уроке Вы увидите создание модуля для вывода цитат.

8-й урок. Создание модуля для раздела. Опять же, достаточно универсальный модуль, ведь модуль, отвечающий за вывод нескольких статей, используется на многих сайтах.

9-й урок. Создание модуля для категории. Здесь мы создадим модуль, отвечающий за вывод центрального содержимого на странице с категорией.

10-й урок. Создание модуля для навигации по страницам. Ещё один универсальный модуль, который пригодится на многих сайтах, ведь странно будет выводить все 1000 записей на одну страницу. Поэтому требуется создание блока с навигацией.

11-й урок. Создание модуля для панели пользователя. В этом уроке будет создан модуль для вывода пунктов меню в панели у зарегистрированных пользователей.

12-й урок. Создание модуля для результатов опроса. Здесь будет разработан модуль, в котором выводятся результаты голосования на сайте.

13-й урок. Создание модуля для хлебных крошек. Тоже очень популярный модуль, который мы с Вами сделаем в этом видеоуроке.

14-й урок. Создание модуля для формы. В этом видео Вы увидите создание универсального модуля, отвечающего за вывод HTML-форм на сайте.

15-й урок. Создание модуля для результатов поиска. Последний модуль, который мы создадим для сайта MyRusakov.ru, и он посвящён небольшим блокам, показывающим часть статьи, которая удовлетворяет запросу в поиске. Причём будет выводиться та часть, где максимальная частота совпадений с поисковым запросом.

Раздел 7. ВЫВОД САЙТА

Меню

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

1-й урок. Вывод главной страницы. В данном видео мы соберём множество блоков и выведем их на страницу, а также сделаем центральную часть, так же состоящую из различных модулей.

2-й урок. Вывод разделов. Здесь будет сделан вывод страницы с разделом.

3-й урок. Вывод категорий. В данном уроке так же будут объединены различные модули из предыдущего раздела. В итоге, будет получена страница с категорией.

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

5-й урок. Вывод комментариев. Сложность данного урока в том, что комментарии древовидные. Но, посмотрев данный урок, для Вас не составит труда повторить достаточно сложный материал, поскольку я всё тщательно разжевал в данном видео.

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

7-й урок. Вывод формы регистрации. Здесь будет создана ещё одна страница, на которой будет находиться форма для регистрации пользователей. Безусловно, там будет капча, которую мы с Вами выведем на страницу.

8-й урок. Регистрация пользователей с активаций по e-mail. Ключевой урок, который покажет Вам, как обрабатывать формы на сайтах.

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

10-й урок. Редактирование профиля. Очень полезный урок, в котором мы с Вами реализуем смену аватарок у пользователей, тем самым, Вы поймёте как реализован механизм работы с файлами в движке, а также реализуем возможность изменения имени и пароля пользователя.

11-й урок. Восстановление пароля. Данный урок покажет механизм восстановления пароля с отправкой секретной ссылки на e-mail и последующей сменой пароля.

12-й урок. Восстановление логина. Ещё один урок, показывающий механизм восстановления логина по e-mail.

13-й урок. Поиск по сайту. Очень важный урок, который не только научит Вас делать поиск по базе данных, но ещё и сортировать результаты по релевантности. Достаточно сложный алгоритм, который Вы увидите в этом видео.

14-й урок. Заключение. Важные напутствия по поводу того, как правильно применять знания из курса.

Вот такой огромный курс Вы получаете!

Но самое главное – это не размер курса, а то, насколько много в нём содержится полезной информации. Сюда я поместил свой многолетний опыт создания огромного числа сайтов. Вы можете всё это взять одним махом и применить уже в своей практике.

БЕСПЛАТНЫЕ БОНУСЫ

Для достижения максимального эффекта от прохождения курса «Создание движка на PHP и MySQL 2.0» я подготовил ещё несколько Бонусов.

Бонус 1. СОЗДАНИЕ API НА САЙТЕ

Бонус

Очень полезный Бонус для тех, кто планирует создавать различные сервисы в Интернете. На большинстве из них есть свой API, и как он создаётся, Вы узнаете из этого Бонуса. Причём, даже если у Вас не сервис, то Вам всё равно может потребоваться API для, например, обработки запросов, отправленных через Ajax, как это сделано на MyRusakov.ru. Поэтому уметь создавать API надо обязательно, и этому Вы научитесь в данном Бонусе.

1-й урок. Что такое API и принцип его работы. Прежде чем создавать API на сайте, мы с Вами разберём, что это такое, для чего нужно и как это работает.

2-й урок. Создание класса для API. В этом уроке мы перейдём к практике создания API на сайте MyRusakov.ru.

3-й урок. Пример работы с API. В данном уроке мы разберём, как работать с API и как правильно писать запросы к серверу.


Бонус 2. ДРЕВОВИДНЫЕ КОММЕНТАРИИ НА JQUERY И AJAX

Бонус

Очень полезный Бонус, в котором мы создадим древовидные комментарии на сайте MyRusakov.ru. Причём добавление, редактирование и удаление комментариев происходит без перезагрузки страницы, а пользователь, на чей комментарий был дан ответ, будет получать e-mail уведомление об этом. Реализацию всего этого Вы увидите в этом Бонусе.

1-й урок. Добавление методов в API. Поскольку комментарии будут добавляться без перезагрузки страницы, мы с Вами будем отправлять через Ajax запросы на сервер. И в этом видео мы добавим методы обработки этих запросов.

2-й урок. Права доступа. В этом уроке мы займёмся правами доступа к комментариям, чтобы каждый пользователь имел доступ исключительно к своим комментариям, а не ко всем. И в то же время, чтобы добавлять могли комментарии только зарегистрированные пользователи. Как всё это делается, Вы узнаете из этого урока.

3-й урок. Редактирование TPL-файла. В этом видео мы добавим ссылки «Редактировать» и «Удалить», причём только у тех комментариев, к которым имеет доступ пользователь.

4-й урок. Добавление комментариев. Здесь мы займёмся работой с jQuery и Ajax: с целью вывода формы при клике по ссылкам «Добавить комментарий» и «Ответить», а также динамический вывод на странице добавленного комментария.

5-й урок. Редактирование комментариев. В этом видеоуроке мы займёмся реализацией редактирования комментария на jQuery и Ajax.

6-й урок. Удаление комментариев. В этом видео Вы увидите, как реализуется удаление комментариев без перезагрузки страницы, разумеется, с помощью jQuery и Ajax.

Бонус 3. СОЗДАНИЕ ЧПУ-ССЫЛОК

Бонус

ЧПУ-ссылки крайне важны для оптимизации под поисковые системы. В этом Бонусе Вы увидите, как преобразуются адреса вида http://mysite.ru/article?id=570 в адреса вида http://mysite.ru/sozdanie-sajta.html на сайте MyRusakov.ru.

1-й урок. Добавление таблицы. Хранение соответствий URI-адресов и псевдонимов страниц будет храниться в отдельной таблице, и её созданием мы и займёмся в данном уроке.

2-й урок. Создание необходимых классов. В этом видео мы создадим дополнительные классы, отвечающие за обработку псевдонимов.

3-й урок. Редактирование маршрутизатора. В этом видео мы запустим механизм ЧПУ-ссылок, отредактировав наш маршрутизатор.

А какие знания нужны для этого курса?

Курс предполагает, что Вы уже знаете HTML и CSS, а также JavaScript. И, безусловно, требуются знания по PHP и MySQL.

Требуемый уровень знаний по HTML и CSS – умение верстать страницы. Для создания и редактирования TPL-файлов нужно обязательно уметь верстать страницы. Да и вообще трудно представить человека, изучающего PHP и не знающего HTML. Если вдруг Вы испытываете затруднения с HTML и CSS, то обязательно пройдите сначала курс «Вёрстка сайта с нуля».

Требуемый уровень знаний по JavaScript – умение писать различные скрипты с использованием так же jQuery и Ajax. В курсе «Создание движка на PHP и MySQL 2.0» эти технологии используются достаточно часто (та же проверка форм, динамическое добавление комментариев, подсветка синтаксиса кода в статьях и ещё масса мелких скриптов). Если вдруг Вы не знаете JavaScript, то обязательно пройдите курс «JavaScript, jQuery и Ajax с Нуля до Гуру».

Также, поскольку сайт MyRusakov.ru написан на HTML5 и CSS3, то желательно знать и их. Для этого был записан курс «HTML5 и CSS3 с Нуля до Гуру». Причём, там же Вы увидите вёрстку сайта MyRusakov.ru, для которого в этом курсе уже делался движок. Вместе с этим курсом у Вас будет полная версия создания сайта MyRusakov.ru. Этот курс надо проходить исключительно после курса «Вёрстка сайта с нуля».

Требуемый уровень знаний по PHP и MySQL – умение писать различные отдельные скрипты: опросы, поиск по сайту, регистрация и авторизация, работа с базой данных и так далее. Все эти скрипты по-отдельности надо уметь делать, а как всё это объединить в движке сайта – вот об этом Вы узнаете уже из курса «Создание движка на PHP и MySQL 2.0». Но если Вы не умеете создавать отдельные скрипты, либо вообще не знаете PHP и MySQL, то пройдите сначала курс «PHP и MySQL с Нуля до Гуру». Внизу есть возможность заказать его вместе с курсом «Создание движка на PHP и MySQL 2.0» с отличной скидкой.

Итак, вот, в каком порядке надо изучать курсы:


Вёрстка сайта с нуля JavaScript, jQuery и Ajax с Нуля до Гуру HTML5 и CSS3 с Нуля до Гуру PHP и MySQL с Нуля до Гуру Создание движка на PHP и MySQL 2.0

Вёрстка сайта с нуля

JavaScript, jQuery и Ajax с Нуля до Гуру

HTML5 и CSS3 с Нуля до Гуру

PHP и MySQL с Нуля до Гуру

Создание движка на PHP и MySQL 2.0

Сколько же всё это стоит?

Объём работы по записи курса «Создание движка на PHP и MySQL 2.0» был огромен, но сбор этих знаний занял вообще несколько лет. Сколько стоят несколько лет работы? Это и есть реальная ценность курса.

Но я решил поставить цену, которая будет подъёмна для максимального числа людей, и она составляет 4700 рублей. Это очень низкая цена по сравнению с теми знаниями, которые у Вас будут после прохождения курса. 4700 рублей – это цена половины сайта-визитки (сайт на 5-7 страниц) у фрилансеров. Я уже молчу про Web-студии, где визитка может легко стоить и 60-70 тысяч рублей, а в редких случаях и того больше.

Знаний, дающихся в этих курсах, более чем достаточно для успешной работы по выполнению заказов на создание сайтов. Чем, собственно, занимаюсь и я.

А что если у меня ничего не получится?

Если вдруг по каким-то причинам у Вас не получится получить высокий уровень знаний по теме курсов после их прохождения, то напишите мне в службу поддержки (https://support.myrusakov.ru), и я верну все уплаченные за курсы деньги без лишних вопросов. Я занимаюсь обучением созданию сайтов уже много лет, у меня тысячи довольных учеников, поэтому я дорожу своей репутацией, и Вы можете мне доверять. По моей статистике, примерно 1.5% клиентов пользуются такой возможностью, и ещё никому я в этом не отказал.

Как оформить заказ?

Выберите те курсы, которые Вам нужны, и перейдите по кнопке «Заказать».

Создание движка на PHP и MySQL 2.0

Создание движка на PHP и MySQL 2.0

Для тех, кто хочет научиться создавать профессиональные сайты максимально быстро и качественно!

Вёрстка сайта с нуля

Вёрстка сайта с нуля

Для тех, кто пока не знает HTML и CSS, либо не умеет их применять при вёрстке сайтов.

JavaScript, jQuery и Ajax с Нуля до Гуру

JavaScript, jQuery и Ajax с Нуля до Гуру

Для тех, кто не умеет писать скрипты на JavaScript с использованием библиотеки jQuery и технологии Ajax.

HTML5 и CSS3 с Нуля до Гуру

HTML5 и CSS3 с Нуля до Гуру

Для тех, кто хочет научиться создавать современные сайты с использованием HTML5 и CSS3. Причём в этом курсе верстался сайт MyRusakov.ru, для которого в новом курсе мы уже создаём движок.

PHP и MySQL с Нуля до Гуру

PHP и MySQL с Нуля до Гуру

Для тех, кто пока не знает PHP и MySQL, либо не умеет писать скрипты с их использованием.

Цена для Вас: 4700 рублей

100% возврат денег в случае неудачи

Выбирайте те курсы, которые Вам нужны, переходите по кнопке «Заказать», выписывайте и оплачивайте счёт, и приступайте к обучению. Чем больше курсов заказываете, тем выше скидка! Обратите внимание, что курсы все последовательные и изучать их надо именно в том порядке, в каком я писал выше.


Желаю Вам удачи!

С Уважением, Михаил Русаков!

Служба поддержки: https://support.myrusakov.ru

ВОПРОСЫ И ОТВЕТЫ

Мне какой-то "Вася" предложил купить этот курс за 500 рублей. Это Ваш партнёр?

Нет, это не мой партнёр, а мошенник, пытающийся заработать денег. Ко мне уже обращались люди, которые заплатили им деньги, а потом эти "продавцы" просто пропадали. Так же были случаи, когда они вместо платного курса, подсовывали мои бесплатные курсы и уроки. А даже если Вы и получите полную версию платного курса со всеми уроками и файлами, то никакой поддержки автора, то есть меня, не предусмотрено. Вместе с этим отсутствуют любые гарантии на возврат денег для таких "клиентов". Поэтому остерегайтесь таких "продавцов", легально мои курсы можно приобрести только на этом сайте и больше нигде и ни у кого. И я НЕ несу никакой ответственности за действия 3-их лиц.

Куда Вы заливаете курс?

Я заливаю на платный сервер (я за него плачу). Поэтому сразу после оплаты Вы получаете прямые ссылки на скачивание курса с качественного сервера. Ни на каких файлообменниках, народе и прочих бесплатных сервисах я этот курс не держу. Если вдруг у Вас возникнет проблема со скачиванием с одного сервера (например, из-за большой нагрузки), то у меня имеется запасной. Просто напишите дать запасные ссылки, и я их Вам вышлю.

Где я могу почитать отзывы об этом курсе?

Все отзывы можно почитать у меня на стене вконтакте (отзывы до 19-го апреля 2014-го года) и в моей группе (отзывы от 19-го апреля 2014-го года).

Можно ли заказать курс с DVD-боксом и дисками?

Да, это возможно. На следующей странице Вам будет предложен такой вариант, но он немного дороже из-за расходов на изготовление и оплату работы менеджерам.

Я не нашёл подходящего способа оплаты, как я могу ещё оплатить?

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

В какие страны Вы отправляете физическую версию диска?

В любую страну мира, где вообще имеется почта, в том числе, островные государства, европейские и другие. Однако, наложенный платёж доступен только для России, Украины и Беларуси. В другие страны курс отправляется только после оплаты.

В какие страны Вы отправляете наложенным платежом?

Наложенным платежом курс может быть отправлен только в Россию, Украину и Беларусь.

Как долго мне ждать физическую версию курса?

Бандероль 1-м классом отправляется в течение суток. Срок доставки колеблется от 4-х до 15-ти дней.

Я смогу рассчитывать на Вашу поддержку после покупки курса?

Да, безусловно, на все вопросы я стараюсь отвечать в течение нескольких часов, чаще в течение часа (но не ночью). Время у меня московское.

Сколько стоит доставка?

Саму доставку оплачиваю я сам. Однако, если Вы заказываете курс наложенным платежом, то Вам придётся доплатить комиссию за почтовый перевод. В разных регионах по-разному, но, как правило, это в районе 4% от стоимости курса. А если Вы делаете предварительную оплату курса (допустим, электронными деньгами или кредитной карточкой), то тогда ничего платить на почте Вам не придётся, а просто заберёте курс.

Это всё вообще работает, или Вы уже закрылись?

Если Вы это прочитали, значит, всё работает и курс доступен для покупки.

Какие знания должны быть у меня для успешного прохождения курса?

Самые элементарные знания компьютера.

А Бонусы бесплатные?

Да, они бесплатные, и уже находятся на самом диске (либо в архиве, если это цифровая версия).

Почему я должен Вам верить?

1. Во-первых, у меня есть персональный аттестат WebMoney: проверить аттестат.
2. У меня есть сайт MyRusakov.ru, на котором я регулярно публикую свои собственные статьи. Вы можете их посмотреть и убедиться в моей компетентности.
3. У меня есть несколько десятков видеоотзывов моих учеников, которые Вы можете посмотреть здесь.
4. Также имеется мой форум, на котором я всегда стараюсь помогать людям.
5. Помимо этого, Вы можете почитать обо мне здесь.
6. Также я веду свой личный блог: Blog.MyRusakov.ru.
7. В конце концов, я обычный человек и имею аккаунт ВКонтакте, а также свою группу.

Нужно ли мне знать английский?

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

У Вас есть бесплатные уроки, чтобы я мог проверить качество?

У меня есть не просто уроки, а целый бесплатный Видеокурс по основам HTML: здесь подробности его получения. Качество звука, видео и подачи материала аналогично платному курсу.

Какие требования к компьютеру для изучения Вашего Видеокурса?

Самые минимальные требования: процессор 800 MHz, оперативная память 512 МБ, звуковая карта (можно встроенную в материнскую плату), видеокарта (можно встроенную в материнскую плату), DVD-дисковод (для физической версии) и операционная система Windows 2000/XP/Vista/7.

У меня ещё остались вопросы, куда мне их написать?

На все вопросы Вы можете получить ответ в моей службе поддержки.

Будет ли работать курс на Mac?

Что касается курса "Создание Интернет-магазина на PHP и MySQL", то он будет прекрасно работать на Mac. А вот у остальных курсов на Mac не будет работать меню, что очень неудобно, поскольку придётся запускать каждый урок вручную. Поэтому я рекомендую для пользователей Mac установить Windows (хотя бы виртуальный): http://www.macvspc.ru/running-windows-on-mac.html