Меню

Сайт на cms своими руками

Строим свою CMS на PHP и MySQL. Часть 1

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

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

Вы можете посмотреть работу готового приложения на странице демонстрации (с целью безопасности включен режим «только чтение», так что добавлять, изменять и удалять статьи не получится). Также можно скачать полный код PHP нашей меленькой CMS с переведенными комментариями.

Примечание: для изучения материалов уроков потребуется веб сервер Apache с установленным модулем PHP и сервер MySQL. Для работы на локальном компьютере можно воспользоваться одним из инструментов веб разработчика: XAMPP (на английском языке), Denwer, Open server или другим.

demosourse

Функционал нашей CMS

Первым делом надо точно определиться, что будет делать наша CMS. Итак, вот список функций:

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

Планирование работ

Для создания нашей CMS нужно сделать следующие шаги

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

Шаг 1. Создаем базу данных

На первом шаге нужно создать базу данных MySQL для хранения содержания. Можно сделать так:

Запускаем программу клиент mysql Открываем окно терминала и набираем команду

После запроса введите пароль для доступа к MySQL.

Создаем базу данных После метки mysql> вводим:

create database cms;

Выходим из программы клиента mysql После метки mysql> вводим:

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

Для решения такой задачи также можно воспользоваться инструментами для администрирования баз данных, таким как phpMyAdmin, cPanel или Plesk (если они установлены на вашем сервере). В некоторых случаях использование подобных инструментов является единственным доступным для пользователя инструментом для работы с базами данных (ситуация зависит от правил, установленных на вашем хостинге).

Шаг 2. Создаем таблицу articles

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

Создаем текстовой файл tables.sql на жестком диске и добавляем в него следующий код:

Разберем выше приведенный код

Также можно воспользоваться инструментами для администрирования баз данных, таким как phpMyAdmin, cPanel или Plesk (если они установлены на вашем сервере).

Шаг 3. Создаем файл конфигурации

Теперь у нас есть база данных и мы готовы разрабатывать код PHP. Начнем с создания файла конфигурации для хранения различных установок для нашей CMS. Данный файл будет использоваться остальными скриптами нашей системы.

Первым делом создаем папку cms в папке веб сервера. Она будет содержать все файлы нашей CMS.

В папке cms создаем файл config.php и копируем в него следующий код:

Разберем код подробно:

Замечание о безопасности

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

Источник

Как создать свой сайт бесплатно своими руками – пошаговая инструкция

Как создать сайт бесплатно и самостоятельно с полного нуля не имея технических знаний? Что такое «домен» и «хостинг» и зачем они нужны?
Что такое «HTML-сайт», «CMS-система» и «конструктор сайтов» и в чем их ключевые отличия друг от друга?

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

Технические аспекты создания сайта

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

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

Конструкторы сайтов

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

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

Наиболее популярные конструкторы сайтов

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

Простой пример создания сайта

Сам процесс состоит из нескольких понятных и простых шагов, о которых чуть ниже!

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

Шаг второй – выбираем базовый шаблон дизайна для будущего сайта.
Конструктор предоставляет в распоряжение пользователей коллекцию из более 500 уникальных бесплатных шаблонов! Такого выбора нет нигде!

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

wix1 060729

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

Шаг четвертый – финальные штрихи и запуск.

final 070205

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

CMS-системы

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

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

Топ бесплатных CMS-систем

Топ платных CMS-систем

Самостоятельное создание сайта

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

Внимание! Если вы абсолютный новичок или просто не хотите погружаться в работу с кодом и другие технические моменты, можете смело переходить к разделу «Создать сайт с нуля или на конструкторе сайтов? »

Создание HTML-сайта

Ниже приводится исходный код простейшей HTML-страницы :

13647 998929 e1568927768853

Ключевые этапы создания сайта

Самостоятельное создание сайта с нуля состоит из трех основных этапов:

Давайте разберемся со всеми этими этапами более подробно.

Читайте также:  Пончо для женщины своими руками

Создание макета сайта

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

Затем устанавливаем цвет фона F7F7C5 в шестнадцатеричном формате или выбираем его с помощью палитры цветов.

После этого выбираем пункт меню « Просмотр » – « Направляющие » и активируем отображение линеек и направляющих.

В пункте меню « Просмотр » — « Привязка к » необходимо проверить, что включена привязка к направляющим и границам документа.

13647 999029 e1568973796731

13647 999030 e1568973809526

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

Затем с помощью инструмента « Формы » создаем прямоугольник с закруглёнными краями ( радиус – 8 точек ) и с его помощью обозначаем место под изображение, которое будет располагаться в шапке сайта.

13647 999031 e1568973829402

Теперь пришло время вставить изображение в шапку сайта.

13647 999034 e1568973842820

Для заголовка в тексте используем черный шрифт. Для навигационного меню – белый.

13647 999278 e1568973856237

Перемещая правую границу основного текстового блока, вставляем изображение в текст страницы ( справа от текста ).

C помощью инструмента « Текст » ( шрифт Arial ) размещаем копирайт в подвале страницы ( под линией ).

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

13647 999036 e1568973903681

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

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

Верстка сайта

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

Она сообщит браузеру, как именно обрабатывать содержимое страницы. Далее следует набор тегов:

Внутри … располагаются теги, которые не отображаются в окне браузера пользователя. Как правило, они начинаются со слова meta, и называются мета-тегами, а вот тег … отображается в качестве заголовка окна браузера и анализируется поисковыми системами.

Источник

Как создать свой сайт

af36c0106a903a81506c9ad3775bff7f

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

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

Шаг 1: Выбор платформы

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

Обратите внимание на то, что CSS и JavaScript – необязательные компоненты, и вы вполне можете сделать сайт без них. Однако если без JavaScript прожить еще можно, то без CSS создать полноценный сайт почти нереально. На практике, конечно, можно, но выглядеть он будет как веб-ресурс из 2000-х.

9857815bafa8aefaf51b63500488bc7780fbe7b5

Как только на локальном компьютере будет создан HTML-файл с привязанной таблицей стилей (CSS), сайт готов, т.е. его можно выгружать в интернет. Но не все так просто просто – такой подход «немного» устарел. Сейчас чаще всего можно встретить взаимосвязь этих компонентов с системой управления контентом – CMS. Это двигатель сайта, который обладает широким функционалом и позволяет создать мощный ресурс без знания программирования.

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

Топ-5 лучших CMS для запуска сайта в 2021 году:

Первый в списке – WordPress, и возглавляет топ он не просто так. WP – это самая популярная система управления контентом в мире. На ней было создано множество популярных сайтов: Mercedes-benz.com, Thewaltdisneycompany.com, Lifehacker.ru и многие другие. Кроме того, WordPress славится своими шаблонными решениями.

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

Список 5 популярных конструкторов сайтов в 2021 году:

Рекомендую обратить внимание на Tilda – мощный инструмент для создания различных сайтов: лендингов, многостраничников, интернет-магазинов. Это идеальный конструктор для тех, кто совершенно не разбирается в веб-разработке. Создать сайт на Тильде сможет даже ребенок – интерфейс сервиса крайне прост. Разумеется, у Тильды есть и расширенный функционал – например, можно добавлять сторонний код, чтобы воссоздать то, чего нельзя сделать стандартным функционалом. Для работы потребуется подключение тарифа Personal, стоимость которого составляет 750 рублей в месяц.

Подождите убегать, это не такая большая сумма, и сейчас вы в этом убедитесь. Дело в том, что на Тильде уже встроен хостинг и бесплатно подключается защищенный протокол HTTPS. Единственная дополнительная трата – это оплата доменного имени. На обычном же сайте, например, на WordPress, потребуется оплатить хостинг, а также подключить SSL-сертификат за отдельную стоимость. Поэтому 750 рублей в месяц это не такая большая сумма, особенно если сайт приносит большой поток клиентов.

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

Шаг 2: Выбираем доменное имя и хостинг

Каждый сайт в сети идентифицируется уникальным именем – например, google.com или timeweb.com. Такое имя принято называть доменом, обычно оно приобретается у регистратора доменов, а затем устанавливается на хостинг. Существуют и бесплатные домены, но такой вариант больше подходит для тестируемого сайта, нежели для полноценного и рабочего.

Когда доменное имя будет приобретено, потребуется прикрепить его к своему сайту. Чтобы это сделать, необходимо зарегистрироваться на хостинге, добавить туда веб-сайт и только потом подключить домен. В случае с Timeweb все намного проще – создать сайт и приобрести для него домен можно в единой панели управления!

Давайте создадим аккаунт на хостинге Timeweb и подключим к нему домен:

Как видите, подключить свой домен совсем не сложно. Теперь можно переходить к созданию собственного сайта.

Шаг 3: Создаем сайт

Ранее мы рассмотрели популярные CMS-платформы, а также подключили доменное имя к будущему сайту. Перейдем непосредственно к разработке веб-сайта – в этой статье мы не будем писать свой код, а рассмотрим лишь те способы построения страницы, которыми могут воспользоваться новички. Это использование шаблонов в WordPress, а также конструирование сайта в Tilda.

Как создать сайт на WordPress

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

Вот так происходит создание сайта на WordPress. Помимо использования доступных тем, вы можете создавать свои собственные – в таком случае потребуются знания HTML, CSS, PHP и JavaScript. Кроме того, из этого вы можете построить неплохой бизнес – создание сайтов на WordPress пользуется большой популярностью во всем мире!

Как создать сайт на Tilda

Если в WordPress для создания уникального сайта требуются знания языка разметки, CSS-стилей и прочего, то в Tilda можно обойтись без них, и сейчас вы в этом убедитесь.

Давайте создадим простой сайт из нескольких шаблонных блоков и одного ZERO-блока:

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

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

Читайте также:  Разделочные доски своими руками для кухни

Источник

Создание собственной системы управления контентом сайта на PHP своими руками

Как создать собственную полноценную CMS. Идеология, технические нюансы и подводные камни

1. Нужно четко определиться что вам жизненно необходимо написать свою собственную систему управления контентом

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

Вы должны понимать что это реально для ваших возможностей

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

Неожиданные проблемы при создании — как неизбежность

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

1. Идеология

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

Зачем? и что? для этого нужно.

Давайте рассмотрим саму идеологию создания платформы, что же приводит человека отказаться от имеющихся решений.
Ответ на удивление прост. Если все будут делать сайты на своих лично разработанных платформах то в интернете придется закрыть 80% топиков форумов за ненадобностью. Почему? да потому — что основную долю трудоемкого время у людей отнимает именно поиск ответов на решения вопросом связанных именно с использованием чужого ПО. В то время когда я работал с чужими платформами — я стоял на месте. И сейчас занимаясь собственным проектом я двигаюсь в перед. Вперед двигаются и мои конкуренты, но чтобы быть в курсе всех технических вопросов устройства чужих «контент менеджеров» мне потребуется постоянно следить за всеми «движениями в коде» разработчиков, что совершенно не требуется при работе со своим личным проектом. Занимаясь собственным проектом человек может рыться в интернете в поисках интересных решений для себя, а не искать что-то для решения трабл в чужом коде, модулях, плагинах.
Написать этот хаб меня спровоцировала статья которая стала последней каплей, это была статья с этого-же хабрахаба о использовании систем от спама на сайтах. Просто уже до идиотизма надоело видеть как в поле зрения фигурируют обсуждения все тех-же проблем в тех-же узких местах. Создавая платформу я провозился несколько дней выдумывая собственную капчу, по моему мнению ее не должен пройти ни один бот. Ну и что вы думаете? Все отлично работает и я не видел еще не одного спамера. Также я не видал попыток взлома, подбора паролей, просматривая логи я вижу как вся нечисть уходит стороной. Все классно ребята! Хочется сказать — Делайте! и вам воздастся.

Ну а теперь перейдем к следующей части.

технические нюансы

Где начинать?

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

Почему нельзя использовать хостинг в интернете под разработку?

А как вы собираетесь редактировать и создавать несколько тысяч файлов кода? Вы что при отладке каждого участка будете ждать выгрузки и загрузки файлов на далекий сервер? Сохранять и открывать файлы потребуется очень часто в течении всего срока разработки и тормоза связанные с удаленными серверами вас просто съедят — поверьте. Сервак под боком! — это первое правило.

С чего начинать?

Первым делом врубаем в настройках сервера полный вывод всех ошибок.
Если сервер настроен, и вы готовы к работе то возникает очень тяжелый момент, вы возможно осознаете что совершенно не можете понять за что нужно браться именно сейчас. Для решения этого момента вам нужно не напрягаясь спокойно раздумывать и записывать все мысли, делать зарисовки. Этот момент будет длится довольно долго, и со временем так и не сдвинувшись с места вы упретесь в целую кучу сложнейших проблем.
Этот момент обязательно нужно пережить, я конечно могу вам подсказать что именно надо делать но намного выгоднее будет если вы сами по размышляете несколько дней и попытаетесь что-то понять и придумать. Гвоздем на этом этапе является именно то что вам требуется правильно задать стратегию построения движка. Выбрав изначально ошибочное направление вы уткнетесь в тупик находясь уже далеко в пути и дорога назад покажется вам еще более мучительной. Собственно приведу пример: Я не занимался объектным программированием на PHP, но мне пришлось изменить все функции работы с базой данных и переписать полностью все апи движка когда я прочел в интернете отказ поддержки от какой-то одной не объектной, используемой мною функции.
В этот момент я осознал что объектная модель будет вытеснять обычный стиль кодинга и для того чтобы моя CMS не отставала мне необходимо поменять подход на объектно ориентированный. Было очень неудобно и обидно понять это находясь уже далеко за стартом. И если честно, зная об этом ранее я бы отказался писать код сам и продолжил пользоваться чужими решениями так как я плохо знал объектный подход. Но ничего страшного, несколько недель изучения и все стало понятно как день.

То есть что я хочу сказать: Не нужно рваться писать код. Для начала напишите всю вашу платформу набросками да картинками, и проанализируйте все что вы придумали. Рассмотрите пути решения поставленных задач. Это займет уйму вашего времени, но поверьте если вы этого не будете делать то потом вас может ждать крах. Зайдя в неудачный поворот и поняв что все напрасно вы возможно не сможете подняться. Начать все заново будет еще тяжелее, чем просто начать с нуля.

Далее по техническим нюансам: Не берите пример с других платформ, можно подсматривать но не нужно повторять. Вы можете подцепить грубую ошибку. Так например в одной из известных платформ есть реализация мультишаблонов для любого типа модулей, это очень классно придумано, но и как раз в этой же реализации есть очень неприятный недостаток. Сейчас я вам его опишу и вы сами поймете о чем идет речь. Движек собирает в кучу все что тащится вместе со всеми позициями, плагинами, модулями и выплевывает это на страницу, и даже если модуль не используется то его ява и css будут красоваться подгруженными на всех страницах подряд. Естественно движек работает отлично но почему бы не проверять что есть на страничке а чего нет и не давать вылетать тому что не требуется. Но к сожалению реализовать это у вас получится лишь продумав эти моменты еще на этапе «карандаша» когда код будет готов изменения принципа работы будут просто катастрофичны. Вы не представляете ка тяжело отладить много сотен взаимодействующих собственных апи и после этого узнать что сам принцип в подходе имеет недостаток. Устранять баги на этом этапе становится нереально трудным занятием.
До тех пор пока вы не нарисуете весь каркас движка приступать к коду нет смысла — Продумывайте абсолютно все!
Касаемо чисто технического вопроса, имея уже довольно обширный опыт хочу сказать, что я бы не рекомендовал организовывать подключение модулей или блоков сайта по GET параметрам в стиле index.php/mod=mod_content&article=32… это решение очень распространено и оно является совершенно утопическим, оно на первый взгляд только дает удобство, на самом деле если ваш URL будет index.php/?page=45 и не более того, а дальше ставится обработчик всего что принадлежит вашей «page» то жизнь станет намного проще а условия разработки более гибкими.

Читайте также:  Ремонт перфоратора скил своими руками видео

Еще несколько советов:

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

Перед любым применением переменных проверяйте ее на инициализацию, конечно вы не не заметите разницы если даже и не будите этого делать но по факту вылезет следующий глюк — на рабочей платформе в случае атаки, перебора паролей, неадекватного бота, происках спамера — вы загляните в логи. И как раз там и обломитесь. Использование неициализированных переменных завалит вам логи до такой степени сообщениями о том что переменная «юндэфинед» что по сути вы просто не найдете то зачем пришли из-за этих прекрасных «SMS». Большинство хостингов где возможно придется жить вашему детищу будут настроены таким образом что при первом же обращении к сайту лог завалит напрочь.
Конечно при включенном выводе ошибок и уверенности что переменная будет определенна до ее использования вы понадеятесь что все прекрасно, но возможно как только вы переедите на новый хостинг по каким-то причинам сайт на вашем движке рухнет. И в двух случаях из трех окажется что в ваших файлах идет перебор пустого не заданного массива — это буде 503 ошибка на рас. И возможно найти эту траблу удастся не за один месяц. Я потратил 2 недели пока один из хостеров не помог мне с отладкой, если бы сам хостер не участвовал в решении проблемы я так думаю что я мог и не справится, у меня уже просто опускались руки. Ровно два раза сайт падал натыкаясь на этот узкий момент.
Причина его появления в основном связанна с запросами в базу, мы настолько наслышаны об опасностях инъекций и самого качества запросов, что при написании функций делаем шизофренически много проверок всех данных прежде чем отправлять запрос, но забываем проверять валидность выдачи базы. На домашнем сервере база может работать без нариканий а вот у хостера вместо ответа «что нет данных по запросу» база может просто промолчать, и если это молчание присвоить переменной и выкинуть return_ом из класса работающего с базой, думая что там в худшем случае летит false — то мы ошибемся, и даже его там не окажется. Поэтом ставим на все переменные if(!empti($var)) и юзаем дальше.

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

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

Подводные камни

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

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

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

Не парьтесь с документированием, я встречал очень грамотно и красиво оформленный комментариями с описанием код — несущий минимум функционала. Зачем он нужен? Конечно хочется красоты и аккуратности, пожалуйста — оформляйте каждую функцию если у вас есть лишние 5-6 лет для этого. В меньшие сроки, потея над каждым сантиметром описания вы вряд-ли уложитесь рассчитывая написать что-нибудь достойное по функционалу. Привыкайте видеть код, зачем его подписывать? вы что читать просто код не можете? Учитесь. Вы думаете что забудете зачем та или иная функция или переменная? А для чего давать им такие имена чтоб потом не помнить? Называйте все соответствующими именами и проблем с пониманием вашего кода не будет не у кого.

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

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

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

Работать, работать и работать или всю жизнь только прикидывать и взвешивать. Посмотрите вокруг! кого вы считаете профи? Людей которые изучили мануалы и теперь разжевывают их всем остальным? А в чем их сила? Они написали свой движок? Запустили новые стандарты валидности CSS? а ну так у них сайт есть? Так много у кого есть… Карма хорошая наверно? Или они клиентам на битриксе по нашлепали уродов?

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

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

Источник

Adblock
detector