Меню Рубрики

Установка движка сайтов php

Создание простого движка на php часть 2

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

Он нужен не только для того, чтобы была возможность подключения сайта к системе управления контентом (cms), но и для правильной организации работы сайта. Сайт должен работать по четким правилам, и его структура должна быть полностью понятной.

Почему сайт нужно делать на движке??

Сайт можно сделать и на чистом html, без использования движков и php-вообщем. На php можно написать только форму обратной связи, и прочие скрипты, необходимые на сайте. Но возникает множество проблем, вот некоторые из них:

  1. Сложность в изменений дизайна сайта
  2. Невозможно подключить систему управления контентов
  3. Сложность и длительность в изменении частей сайта (например, сделали сайт на html из 100 страниц, и потребовалось на каждой странице добавить новый пункт меню, придется все перелапачивать)

Сейчас мы напишем движок для создания сайта из 3-ех страниц. Структуру движка можете посмотреть в предыдущем уроке.

Файл: index.php

Файл выводит шапку и подвал, и запускает класс Engine, который выводит страницы сайта. Страницы сайта хранятся в папке templates.

Файл: class/Engine.php

Основной файл движка. Отвечает за открытия страниц. Имя файла шаблона передается методом GET. По-умолчанию открывается страница main.php.

Файл: templates/header.php

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

Файл: templates/footer.php

Подвал нашего сайта, обычно содержит копирайт компании которая создала сайт, телефоны, и нижнее меню

Файл: templates/main.php — Главная страница

Файл: templates/about.php — Страница о компании

Файл: templates/ox2.php — Страница Почему OX2

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

Комментарии (Написать комментарий)

Комментарий:
Доброго времени суток, подскажите пожалуйста почему в templates/main.php
не отрабатывает php код?
Html работает а php не выполняется

Комментарий:
Спасибо за урок. Поможет в будущем. Сейчас изучаю теорию и ваши уроки помогают осмыслить многое в построение сайта.

Комментарий:
Мне кажется с геттайтл не работает.

Комментарий:
Все супер. Учусь по вашим урокам. Спасибо за знания, которые дарите людям 🙂
Я только начал изучать работу с классами. До этого мог писать корявый код, который был разбросан по всем файлам.
Сделал простенький движок по вашему уроку, но решил усложнить для себя задание и сразу впал в ступор. Вот к примеру я хочу сделать боковую колонку. И в ней будет меню, а еще какие-нить виджеты самописные(календарь,форма входа,что угодно). Как мне организовать эту работу через классы?

источник

Как создать движок для сайта

У меня часто спрашивают: «Как создать свой собственный движок для сайта, например, как Joomla, DLE, WordPress и другие«. Многие, конечно, спросят: «А зачем, ведь есть, например, Joomla?«. На этот вопрос я уже отвечал в этой статье: joomla vs сайт с нуля. И если Вы приняли решение о создании своего движка для сайта, то читайте дальше.

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

  1. Сверстайте все страницы сайта. Здесь совсем необязательно рисовать какой-то дизайн — это можно сделать потом. Вы должны просто чётко нарисовать структуру внешнего вида: где будет лого, где меню, сколько колонок у Вас будет, что будет в подвале и так далее. Это всё можно будет потом поменять, но начальном этапе Вам просто нужно отлаживать движок, поэтому самый элементарный внешний вид всё равно потребуется.
  2. Создайте все таблицы для базы данных. В этом пункте необходимо понять, какие таблицы Вам потребуется и какие там будут поля. Например, таблица со статьями, с пользователями, с разделами сайта и так далее. Ничего страшного не будет, если Вы что-то забудете. Но этот пункт надо выполнить максимально хорошо, потому что после этого внутренняя структура движка станет намного понятнее.
  3. Теперь Вам необходимо создать набор классов (да, советую использовать объектно-ориентированное программирование, поверьте — так будет намного проще), каждый из которых отвечает за определённую часть. Например, класс по работе с базой данных, класс по управлению пользователями и так далее. Обратите внимание, что один класс не должен реализовывать задачи, которые по смыслу относятся к другим. Например, не надо соединяться с базой данных в классе пользователя. А надо создать объект базы данных в классе пользователя и им манипулировать. В каждом классе Вы должны написать все методы, которые Вам потребуются. Например, метод получения логина пользователя по его id или метод изменения e-mail пользователя и так далее. Также наверняка Вам потребуется какой-нибудь глобальный абстрактный класс, в котором будут содержаться методы, общие для всех других. Например, очень полезный метод — это получения значения некоего поля, по известному имени и значению другого поля. Например, мы знаем e-mail пользователя, и хотим узнать его логин. Такой метод легко данную задачу решит.
  4. Разбейте Ваш шаблон на составные части и отправьте их в отдельные файлы с расширением tpl. Делается это так: копируете какую-то отдельную часть (например, форму авторизации, часть, где выводятся статьи, меню и другие) и вставляете в отдельный файл tpl. В результате, у Вас появится большое количество файлов-шаблонизаторов. В этих файлах-шаблонизаторах поставьте . Например, там где должно быть имя пользователя поставьте . Там, где должен быть заголовок статьи, поставьте . Аналогичным образом Вам надо исправить каждый файл tpl.
  5. Дальше создайте класс, который будет работать с файлами-шаблонами. В задачу этого класса будет входить работа с основными другими классами (например, классом пользователей), а также подстановка соответствующих данных в файлы-шаблоны вместо . Например, вместо этот класс должен будет подставить имя пользователя. Разумеется, здесь будет очень много методов, каждый из которых выполняет свою функцию.
  6. Выводите все элементы на страницах сайта, используя класс созданный в предыдущем пункте, собирая тем самым страницы по кирпичикам.
  7. И, наконец, внешний вид сайта — он же дизайн. Исправляйте файлы tpl (оставляя ), добавляйте CSS-файлы и JavaScript. А функциональность трогать уже не надо (если Вы всё сделали правильно, конечно).

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

Пример создания реального движка с нуля можно посмотреть в этом курсе: http://srs.myrusakov.ru/php

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

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

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 46 ):

    Не совсем понял два момента: 1. «В этих файлах-шаблонизаторах поставьте <элемент_шаблона>» Куда именно нужно писать <элемент шаблона>. В начале tpl файла? или в названии? 2. Также не совсем разобрался, где хранить набор классов используемых в движке, а значит и на сайте? В отдельных файлах и выводить через include?

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

    Что касается второго пунка посоветую функциию __autoload() — но у неё существует недостаток, в случае определения __autoload() — её нельзя переопределить Данный недостаток обещали исправить в php 5.3 но до сих пор ситуация остается не изменной. Но можно исправить с помощью спец. класса описывают его в книге «PHP 5 — Котеров Дмитрий, Костарев Алексей» — Таким образом данный класс неплохо ляжет за основу движка!

    Здравствуйте, Михаил. У меня к вам один вопрос: в каком расширении хранить главный шаблон сайта?

    источник

    Движки сайтов (CMS) на PHP

    Фреймворки

    Как подобрать CMS

    Ориентироваться на использование CMS следует в подавляющем большинстве случаев. Действительно, несколько лет назад, для того чтобы получить удовлетворительную CMS, требовалось потратить ощутимую сумму денег на покупку лицензии и оплату услуг специалиста, настраивающего систему. И не для всякого сайта подобные траты выглядят оправданными. Сейчас ситуация поменялась кардинальным образом: появились бесплатные CMS, удобные в настройке, при этом установка современных систем занимает немного времени и не требует особенных навыков.

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

    Во всех других случаях CMS очень сильно облегчит жизнь сайтовладельца. Если только правильно CMS выбрать. Для верного выбора прежде всего следует определиться по нескольким вопросам.

    Вопрос первый: Какова информационная структура сайта?

    Это наиболее важный вопрос. Дело в том, что даже самая мощная и гибкая «универсальная» CMS имеет свои ограничения по отображению иерархии материалов.

    Например, предположим, что вы наметили сделать каталог товаров, где будет представлено несколько сотен наименований разнородной продукции, каждому виду которой будут соответствовать два-три десятка качественных характеристик. Скорее всего, ни одна «универсальная» CMS не позволит такое реализовать. Придётся либо обратить внимание на специализированные системы для интернет-каталогов, либо рассмотреть вариант с заказом разработки CMS «под конкретный сайт». С другой стороны, CMS, ориентированная на интернет-каталоги, вряд ли годится для корпоративного или тематического сайта.

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

    Второй вопрос: Кто и как часто будет обновлять информацию на сайте?

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

    То, насколько часто обновляется информация, влияет на выбор функций по добавлению новых данных на сайт. Ведь если планируется вести прямые репортажи с ежеминутными «горячими новостями», то и CMS должна предоставить удобный «оперативный» интерфейс для мгновенного добавления текстов «одним нажатием», без лишних действий — это будет сильно экономить время редактора. Если же конструируется тематический сайт, где новые страницы появляются раз в неделю или реже, то обращать внимание на то, сколько действий внутри CMS надо совершить, чтобы статья появилась на сайте, вряд ли оправдано.

    Третий вопрос: Что за хостинг-площадка может быть для сайта выделена?

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

    Четвертый вопрос: Есть ли возможность заплатить сторонней компании за CMS?

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

    Также, существуют коммерческие CMS. Это «универсальные» системы, но за право их использования придётся заплатить производителю. Главное преимущество таких систем не в каких-то удивительных функциях, которых нет в бесплатных CMS, а в том, что за уплаченные деньги клиент получает хорошую техническую поддержку (по крайней мере, должен получать таковую). Бесплатные CMS, к сожалению, не могут похвастать хорошей и бесплатной же технической поддержкой. Правда, можно использовать бесплатную CMS, «докупив» к ней коммерческую поддержку, но тогда это уже не будет бесплатным решением.

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

    Как оповестить поисковую систему об изменениях на вашем сайте? Возможно CMS система имеет встроенные средства оповещения, например WordPress.

    источник

    Движок для сайта своими руками. Часть вторая

    В прошлый раз мы рассмотрели способ организации «базы данных» без собственно самой базы данных. Сегодня продолжим тему создания «без-mysql’ного» сайтового движка разговором об каталогах, файлах и include’ах. Также будет немного теории и практики о собственно работе такого двигателя.

    Основные принципы организации работы

    Несложно догадаться, что организация устройства движка зависит от многих факторов, изменяющихся в каждом конкретном примере сайта. Это и предполагаемая структура информации, и особенности хостинга, на котором размещён сайт (наличие-отстутствие таких средств как php, ssi, доступность каких-либо баз данных, и т. п.), и не в меньшей степени при разработке устройства будущего движка нужно учитывать дизайн сайта, то есть структуру самих страниц.

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

    Итак, само слово «разделение» подразумевает уже, как минимум, разделение страницы сайта на два файла — с шаблоном дизайна (который может быть общим для нескольких страниц) и файла с самим контентом, то есть информацией.

    Кроме этих двух файлов нам понадобиться ещё один, включаемый во все динамические страницы (имеются ввиду страницы, содержащие php-код). В этом файле мы будем хранить все общие функции движка (собственно, их можно назвать «ядром»), а также определим некоторые полезные глобальные константы.

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

    А под фразой «учитывать дизайн», высказанной немного выше, имелось ввиду создание системы шаблонов, или, проще говоря, набора оформлений разных страниц (html-файлов, по сути), где места под изменяемое содержание (заголовки, меню, тексты — всё, что генерируется динамически) оставлены пустыми. Подставлятся они будут «на лету» при обращении пользователя к определенной странице. Получается даже дополнительный выигрыш — кроме всего прочего, уменьшаеться объём хранимых на сервере файлов, так как оформление страниц не повторяется в каждом файле, а хранится в одном месте. Про удобство при возможном желании изменения дизайна, я думаю, и говорить не надо.

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

    Итак, у нас имеются каталоги, каждый из которых является разделом сайта (естественно, кроме служебных каталогов, таких, как “images”).

    Это значит, что в каждом таком каталоге должен лежать так называемый «индексный файл» — страница, которая загружается по умолчанию при таком обращении к разделу: http://site.com/razdel. Имя этого файла (или возможные имена) вам нужно узнать у вашего хостера. Чаще всего это такие имена, как “index.html”, “index.php” и т. п. — расширение зависит от используемого серверного языка.

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

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

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

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

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

    Суть её работы сводится к следуещему. Имеется текстовый файл с новостями, разделенными символом перевода строки (словом, каждая новость — в новой строке). Каждая строка разделена символом вертикальной черты («|») на два поля: дату и, собственно, саму новость.

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

    Вот моя реализация функции новостной системы:

    Что ж, на сегодня пока что всё. Продолжение следует…

    источник

    Читайте также:  Установка генератора с выносным реле регулятором