Топ-100
Сейчас ищут:

Сайтостроение Русаков - Создания движка на PHP и MySQL 2.0

Admin

Администратор
Команда форума
Регистрация
30 Дек 2017
Сообщения
149,066
Симпатии
4,179
Русаков - Создания движка на PHP и MySQL 2.0
Автор: Русаков



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

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

1-я причина

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

2-я причина

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

3-я причина

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

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

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

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

1-я причина

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

2-я причина

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

3-я причина

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

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

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

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

Чёткая структура самого движка, где каждый объект отвечает сам за себя. Это крайне важно, иначе путаницы не избежать.

Использование паттернов (шаблонов проектирования). Фактически, это готовые решения красивого кода, поэтому их обязательно надо использовать при разработке крупного проекта.

Лёгкая изменяемость. То есть чтобы добавить новый функционал, не нужно лезть в десятки файлов и везде что-то исправлять.

Переносимость. Некая часть, так называемое «ядро», которое переносится от одного сайта к другому без единого изменения.

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

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

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

ПРЕДСТАВЛЯЮ ВАШЕМУ ВНИМАНИЮ СВОЙ НОВЫЙ ВИДЕОКУРС

«СОЗДАНИЕ ДВИЖКА НА 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. МОДУЛИ

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

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

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



Пожалуйста Войдите или Зарегистрируйтесь для просмотра скрытого текста.



Скачать:

Для просмотра содержимого вам необходимо авторизоваться или зарегистрироваться.

Если у Вас нет Премиум статуса:

Преимущества VIP-подписки

Оформить VIP-Подписку

 

Похожие курсы:

Сверху