Подпишитесь на обновления блога. Введите ваш e-mail:

Вход в систему

Технологии создания сайтов, что такое CMS, что такое framework

Краткое содержание

В статье рассматриваются следующие понятия и технологии создания сайтов:

- сайт на базе html-файлов

- сайт на базе php как возможность избежать дублирования

- связка php + mysql. Храним контент в базе данных

- что такое CMS

- что такое framework

История. Сайты на HTML

Эволюция технологий создания сайтов

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

Для каждой страницы сайта создавался свой html-файл, содержащий свой контент. Например для раздела "О компании" - файл about.html, в который вручную добавлялась нужная информация, осуществлялась разметка страницы при помощи html-тегов, и такой файл загружался на сервер.

Таким образом, когда пользователь в строке адреса набирал www.kakoi-to-domen.ru/about.html, ему в браузер загружался непосредственно файл about.html

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

Вообще HTML прост как 3 копейки и практически не претерпел никаких изменений за последние почти 20 лет. Но чтобы научиться делать красивые сайты, придется узнать что такое верстка. А для того, чтобы делать сайты функциональные - придется изучать программирование и в частности язык PHP, о котором пойдет речь дальше.

Язык PHP

Несмотря на простоту разработки сайта на базе HTML, недостатки "ручного" создания страниц сайта очевидны: руками можно сделать 5-10 страниц, но когда их число достигает сотен  - возникают проблемы. И сложность заключается скорее не в создании, сколько в управлении этими страницами. Ведь для правки какого-то повторяющегося блока на сайте, например часть дизайна или элементов меню, придется дублировать изменения во всех файлах сайта.

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

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

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

 

Да придет спаситель в лице связки PHP + MySQL

По-настроящему мощным инструментом программирования и создания сайтов является связка PHP + MySQL.

MySQL - это База Данных, набор таблиц, в которых хранится та или иная информация.

PHP выступает в качестве инструмента, который умеет читать из таблиц базы нужные данные и на их основе формировать html-код.

Приведу пример.

Пусть в базе данных имеется следующая таблица

text
1 Привет, я первая страница
2 Я страница номер 2

Тогда при помощи php мы можем написать алгоритм, такой, что передавая в URL номер нужной нам строки в таблице, мы сможем выводить на экран нужную информацию. Например, по URL www.vash-domen.ru/?page=1 скрипт поймет, что значение переменной "page" равно единице, а значит нужно вывести данные из первой строки таблицы, которая содержит фразу "Привет, я первая страница".

Если же изменить URL на www.vash-domen.ru/?page=2, значение переменной page = 2, а значит нужно вывести вторую строку таблицы.

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

Итак, предположим что выводить нужные данные из базы мы научились. Но ведь в php помимо чтения существует технология записи в базу сайта новых данных. Для отправки данных от пользователя используются html-формы и на php можно реализовать механизм обработки этих форм. Таким образом после того как пользователь заполнил форму и нажал кнопку "отправить" php-скрипт ловит данные из формы и выполняет вставку новой строки в базу.

Что такое CMS

Итак теоретически мы научились читать и записывать данные в Базу, а значит обладая достаточными знаниями PHP и MySQL можем самостоятельно сделать полноценный механизм управления информацией.

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

Результат: десятки таблиц, сотни php-файлов, тысячи строчек кода...

Качественно выполнить такую работу с нуля - задача не простая. Но предыдущие поколения программистов уже потрудились за нас. Сегодня на просторах интернета можно найти множество различных готовых вариантов систем управления контентом, или сокращенно CMS (Content Management System).

В CMS все функции работы с БД уже запрограммированы, а интерфейс по работе с сайтом максимально прост и удобен. Таким образом администратор сайта видит лишь отдельные элементы управления (формы добавления статей, элементы управления меню и т.д.), и ему совершенно не нужно быть программистом чтобы управлять сайтом. Он лишь задает команду, например, "создать статью", а движок выполняет всю механическую работу за него, а именно обрабатывает входные данные и вставляет их в нужные таблицы БД. И поэтому сегодня администратор сайта может быть совсем далек от программирования, но иметь возможность управлять контентом. Это можно сравнить с вождением автомобиля. Ведь вам совершенно не обязательно знать, как работает двигатель. Достаточно нажать на педаль газа, и машина поедет.

Однако повторюсь, что в сущности CMS - это набор PHP файлов, при помощи которых осуществляется управление базой данных (как правило MySQL).

На сегодняшний день среди бесплатных CMS можно выделить 3 наиболее популярные: Drupal, Wordpress, Joomla.

Что касается платных продуктов, думаю вы наверняка могли слышать о системе управления 1С-Битрикс.

Что такое Framework

Выше вы прочитали о том что такое CMS. И наверняка вам могло показаться что Системы Управления Контентом - это самое удобное средство разработки сайтов. Однако существует еще один инструмент - Framework (фреймворк).

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

Ещё раз подчеркну: framework не является готовым решением. Т.е. у вас не получится установить фреймворк и получить готовый сайт с системой управления.

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

Постараюсь объяснить на пальцах, точнее на автомобилях.

Представим, что CMS - это автомобиль. Пусть в нем много чего не хватает, но в него уже сейчас можно сесть и поехать, а в будущем доработать (перекрасить, вставить магнитолу и т.д.)

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

Таким образом Framework - это инструмент для программистов-профессионалов, которым не хватает функционала в той или иной популярной CMS. Для них оказывается проще написать свою собственную CMS на базе Фреймворка.

Надеюсь что я ещё не успел вас окончательно запутать =) Ещё раз. Логическая цепочка такова:

1. Имеется язык PHP + MySQL на базе которого можно создать систему управления базой

2. Писать такую систему полностью с нуля очень долго, и в сущности придется делать много рутинной работы

3. Framework - это некая заготовка, в которой вся рутина уже написана (подключение к БД, обработка действий от пользователя)

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

На сегодняшний день крупные фирмы, занимающиеся разработкой сайтов, имеют свои собственные CMS как раз на базе Фреймворков. Однако, для того чтобы использовать Framework в своей работе необходимо отличное знание PHP и отличное понимание Объектно Ориентированного подхода к Программированию.

Вот несколько популярных фреймворков для примера: Yii, Zend, Ruby on Rales.

Заключение

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

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

Но об этом в других статьях. Спасибо за интерес к моему блогу. Удачи в ваших начинаниях!

Гость : 09-02-2013

спасибо, хорошо написано

Гость : 04-04-2013

Очень интересная статья и отдельное спасибо за сравнение на примере автомобиля! Очень наглядно!!=)

Гость : 17-06-2015

Эта статья - лучший ответ на мои вопросы из всей информации что я нашла интернете. Кратко и понятно. Спасибо)))

Отправить комментарий

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