телевизори. Конзоли. Проектори и аксесоари. Технологии. Цифрова телевизия

От теория до вашия собствен CMS онлайн магазин. От теория до вашата собствена CMS за онлайн магазин Какво трябва да може да прави една CMS

(задръжте мишката върху урока, за да видите подробно)

Част 1

(Писане на собствена рамка)

Продължителност: повече от 4 часа
Списък на уроците от първата част:

1. Въведение
Първият урок от курса обхваща организационни въпроси, разглежда се структурата на дисциплината, разглежда се необходимият минимум знания, необходими за успешното изучаване на дисциплината. Списък с необходимите софтуер(сървър, редактор, PHP версия и др.).

2. Структура на приложението
Този урок разглежда структурата на създаваната рамка и също така създава необходимите папки и файлове за по-нататъшна работа - това са директориите на ядрото, библиотеките, контролерите, моделите, изгледите и публичната част на приложението.

3. Конфигурация на приложението
Този урок започва писането на код. По-специално се създава единна входна точка за приложението и всички заявки се пренасочват към нея, а предният контролер на приложението ще обработва входящите заявки.

4. Регистър на класа
В този урок вие пишете полезен клас, който ще предостави глобален обект. Използвайки този обект, ще бъде възможно да записвате всякакви данни в него, които ще бъдат достъпни от всяко място в нашето приложение.

5. Клас за обработка на грешки
Друг полезен клас, който е необходим във всяко уеб приложение, е класът за обработка на грешки. Този клас ще ви позволи да регистрирате възникнали грешки и да не ги показвате на екрана в производствен режим.

6-7. Клас рутер
Следващите няколко урока ще бъдат посветени на писането на ключов клас за почти всяко уеб приложение, което имплементира модела MVC.

Говорим за класа Router. Използвайки този клас, ще разберем коя страница е поискал потребителят и ще пренасочим заявката към съответния контролер и действие.

8. Основен контролер
В този урок създаваме друг ключов клас от ядрото на рамката - класът Controller.

Именно този клас трябва да наследят всички контролери на бъдещото приложение. IN този класописва всички необходими методи, които ще ви позволят да приемете и обработите заявката на потребителя, за да му покажете впоследствие желания резултат.

9-10. Вижте класа
Друг компонент на MVC архитектурата е изгледът. Този урок е посветен на писането на базов клас View, чиято задача е да изобрази исканата страница за потребителя. Този урок разглежда как да отделите изглед от шаблон и какви са разликите между двата.

11. Модел на класа
Последният ключов компонент на MVC архитектурния модел е моделът. Задачата на модела е да работи директно с данни, по-специално да предостави необходимия набор от данни при поискване от администратора.

12. ORM RedBeanPHP
Работата с модел често включва работа с база данни. Съответно, ние трябва да пишем SQL заявки или трябва да се погрижим да имаме подходящ builder клас, който да пише такива заявки вместо нас. Урокът обсъжда втория вариант и включва прекрасната библиотека RedBeanPHP, която значително опростява по-нататъшната работа.

Цели и задачи на този раздел

Първата част от курса е посветена на писането на рамка от нулата.

В резултат на това се създава ядро, набор от инструменти, които ще улеснят по-нататъшната работа и благодарение на които в бъдеще ще бъде възможно да се създават различни уеб приложения на писмената платформа.

Обсъждаме какво представлява моделът MVC и как работи на практика. Обсъждат се и принципите на работа на съвременните рамки, което улеснява обучението как да работите с тях в бъдеще.

Част 2

(Писане на потребителската част CMS на онлайн магазина)

Продължителност: повече от 13 часа
Списък на уроците във втората част:

1. Прехвърляне на шаблон към структурата на CMS
За да се гарантира, че създаваният онлайн магазин има приличен външен вид, той е избран безплатен шаблон, който е интегриран в структурата на рамката и двигателя, създаден в курса. Освен това, това ще бъде доста лесно да се направи.

2. Структура на база данни
Вторият урок от настоящата част на курса е изцяло посветен на анализ на архитектурата на базата данни. Тук се създават основните необходими таблици в базата данни и се разглежда тяхната структура, за да се разбере ясно защо е необходима тази или онази таблица.

3. Стартиране на марката
Този урок директно започва работа с CMS кода и изпълнението на една от най-простите задачи - показване на марки.

4. Популярни стоки
Класическа функционалност на всеки съвременен онлайн магазин е показването на различни промоционални продуктови категории. Това могат да бъдат популярни продукти, нови артикули, разпродажби и др. В този урок ние прилагаме показването на популярни продукти на начална страницасайт.

5-6. Уиджет за избор на валута
Полезна и почти задължителна функционалност за много онлайн магазини може да бъде възможността за избор на валута, в която да се показват цените на продуктите и в която да бъде закупен самият продукт. В следващите два урока създаваме джаджа за избор на валута, която ще позволи на потребителя да избере валута от списък с предлагани. Също така в бъдеще ще бъде въведена възможност за добавяне на нови валути в админ панела.

7. Преизчисляване на цената на продукта в избраната валута
Този урок е логично продължение на предишните два. Уиджетът за избор на валута е написан, сега е време да го приложите, което е внедрено в този урок.

8-10. Джаджа за категория
Следващите три урока са посветени на писането на друга джаджа - джаджа за категория. Тази джаджа е реализирана по доста универсален начин, така че да може да се използва не само в потребителската част на сайта, но и в бъдещия админ панел. Създаденият уиджет ще изгради и покаже меню от категории по зададен шаблон. При което това менюще поддържа неограничено ниво на влагане на категории.

11-17. Картов продукт
Една от най-важните и обемни части на курса е продуктовата карта.

Тук не само трябва да покажете информация за продукта, но също така трябва да приложите добавяне на променлив брой продуктови единици към количката, но и допълнително да приложите свързана функционалност, като например: показване на допълнителни изображения на продукта, възможност за добавяне към количката както основната версия на продукта, така и негова модификация (продукт с различен цвят) на различна цена, модули от свързани и разглеждани продукти, клас хляб и др.

Има доста много функционалност и нейното изпълнение е показано в седем урока наведнъж.

18-22. Кошница
Неразделен атрибут на всеки онлайн магазин е пазарската количка. Всъщност без пазарска количка сайтът просто престава да бъде онлайн магазин и се превръща в обикновен продуктов каталог.

Следващите пет урока развиват функционалността на пазарската количка. Продукт може да бъде добавен в количката от всяка точка на сайта, където има продуктов блок или негова карта. Това може да бъде продуктът, който разглеждате директно или продукт в избраната категория. Може да бъде и продукт от модули, свързани или разглеждани продукти. Добавянето на артикул в количката ще се случи асинхронно, т.е. без презареждане на страницата.

23-24. Търсене
Уроци 23 и 24 показват прилагането на търсенето на продукти. Това също е важна функционалност за всеки уебсайт, особено за онлайн магазин.

Търсенето е важно за потенциалния купувач, защото позволява на потенциалния купувач бързо да намери желания продукт и в резултат на това помага за превръщането на потенциалния купувач в истински. Тези уроци реализират т.нар търсене на живо, т.е. търсене с подсказки за опции заявки за търсене, които се появяват, когато купувачът въведе заявка за търсене.

25. Категория продукти
В този урок внедряваме страница за преглед на избраната категория и съответно показваме списък с продукти в тази категория на тази страница. Тъй като магазинът, разработен в курса, поддържа влагане на категории, това означава, че потребителят може да отиде до категория, която има дъщерни категории. Съответно този нюанс ще бъде взет предвид и в този случай ще бъде приложен избор на стоки от всички вложени категории.

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

27-31. Регистрация
Друга доста обширна функционалност, която се прилага, е регистрацията на потребители.

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

32-35. Правене на поръчка
Други четири урока са посветени на проблемите с поръчката. Тук не само ще бъде реализирана функционалността за запазване на поръчката и данните за нея в базата данни, но и ще бъде реализирана функционалността за изпращане на известие за нова поръчка до мениджъра на сайта, както и писмо с подробности за поръчката ще бъде изпратено до самият купувач. За целта ще се използва вече популярният клас Swift Mailer.

36-40. Филтри
Последната обемна и доста интересна тема са филтрите. Има пет относително големи урока, посветени на този въпрос. Филтрите са много удобни и помагат на купувача да намери правилните продукти на сайта.

Това ще бъдат последните уроци от потребителската страна на сайта.

Цели и задачи на този раздел

И така, първата част показва как да напишете своя собствена рамка - това е ядрото, на базата на което ще бъде създадена система за управление на съдържанието (CMS) за нашия онлайн магазин.

Във втората част на курса, урок по урок, се създава потребителската част на сайта с доста обширен набор от функционалности.

Част 3

(Писане на администраторската част CMS на онлайн магазина)

Продължителност: повече от 11 часа
Списък на уроците в третата част:

1. AdminLTE шаблон
Първият урок от третата част е посветен на основите на работа с популярен бекенд шаблон - AdminLTE. В този урок изтегляте и инсталирате този шаблон, а също така създавате необходимата структура за работата на административната част на CMS.

2. Упълномощаване на администратор
В този урок финализираме механизма за оторизация, който вече съществува; той беше написан в уроците от потребителската страна на сайта.

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

3. Уиджети за начална страница
Шаблонът AdminLTE идва веднага с много страхотни компоненти, които разширяват възможностите на CSS рамката Bootstrap. Един от тези компоненти са малки, симпатични блокчета с джаджи, които се вписват перфектно в главната страница на администратора.

Този урок добавя точно тези. Те ще показват основна информация и ще предоставят бърз достъпкъм него: поръчки, продукти, категории и потребители.

4. Списък с поръчки
Този урок реализира функционалността за преглед на списък с поръчки с възможност за преглед на избрана поръчка в детайли или изтриване, ако е необходимо.

5-6. Обработка на поръчки
Следващите няколко урока добавят възможност за детайлен преглед на поръчка и промяна на нейния статус. В подробностите за поръчката мениджърът ще може да види както основна информация за поръчката и купувача, така и разширена информация.

7-11. Управление на категории
Пет урока, от седем до единадесет, са посветени на внедряването на функционалност за управление на категории. Внедрява се функционалност, която дава възможност на мениджъра да създава нови категории, да редактира съществуващи, както и да ги изтрива. Освен това е добавена задължителна проверка за наличие на продукти или подкатегории в категорията с цел избягване случайно изтриванене е празна категория.

12. Управление на кеша
Създадената в курса CMS поддържа механизъм за кеширане на данни. Например, можете да кеширате категории и филтри. В същото време обаче съществуващите категории, например, могат да се променят периодично. Съответно е необходимо да се даде възможност на администратора на сайта да възстанови кеша на категориите, като изтрие текущия. Тази функция ще бъде внедрена в текущия урок.

13-16. Управление на потребители
Четири урока за работа с административната част на сайта са посветени на работата с потребителите. Показано е изпълнението на стандартната функционалност за управление на потребители: редактиране на профил и създаване на нови потребители. В този случай мениджърът може да създаде както обикновен потребител, така и нов администратор.

17-27. Продуктов мениджмънт
Основната и най-обширна функционалност на административната част е, разбира се, управлението на продукта. Ето защо най-много уроци са посветени на внедряването на тази функционалност – единадесет урока.

Тук можете да създавате нови продукти и да редактирате съществуващи. Освен всичко друго, той е прецакан визуален редакторс файлов мениджър, добавена е възможност за зареждане на основни и допълнителни изображения на продукти и е реализиран избор на свързани продукти и атрибути на продукта.

28-30. Управление на филтъра
Следващите три урока показват изпълнението на функционалността за управление на филтъра. Добавена е възможност за управление на групи от филтри и самите атрибути, които по-късно могат да бъдат присвоени на продукти.

31-32. Валутен мениджмънт
Последните два урока прилагат механизма за управление на валути. Администраторът ще може да създава нови валути и да редактира съществуващите. Администраторът също ще може да зададе основната валута на магазина.

Цели и задачи на този раздел

И така, обсъжда се създаването на потребителската част на онлайн магазина. Сега е време да управлявате цялата тази функционалност. А за целта ви трябва админ панел.

Именно развитието на административната част на CMS е показано в последната част на този курс.

Добър ден, читатели на сайта! 🙂

След предишните ми статии вече трябва да сте решили целта на създаването на вашия ресурс, да изберете неговия тип, както и как точно ще го създадете.

Ако все още имате определени трудности при отговора на тези въпроси, препоръчвам ви спешно да ги отстраните, като прочетете предишни публикации.

Е, за тези, които са уверени в намеренията си, време е да продължат напред :)

И днес ще говорим за такова нещо като създаване на уебсайт на CMS, защото днес е един от най-простите и най-обещаващите.

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

Процесът на разработка на уебсайт на CMS не е хаотично движение на курсора на мишката върху екрана на монитора и щракане на клавиатурата :) Състои се от няколко етапа, само последователното изпълнение на които ще ви доведе до желания резултат - вашия собствен уебсайт!

И така, нека поговорим за техническите аспекти на създаването на уебсайт на CMS по-подробно...

Създаване на сайт на CMS - етапи

Инсталация на компютър

Първо, трябва да изтеглим самия двигател и да го инсталираме.

Има два начина:

  1. Копирайте изтегления двигател на сървъра и го инсталирайте директно там;
  2. Инсталирайте CMS на локален уеб сървър, разположен на вашия компютър.

Всеки метод, както обикновено, има своите плюсове и минуси.

Когато прав CMS инсталациякъм сървъра Ще спестите време за инсталиране, което е незаменимо при разработка на локален компютър. За да работят с кода на двигателя, редакторите на кодове често са вградени в административната им част, което ви позволява да правите редакции директно през Интернет.

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

Но онлайн редактирането също е недостатък, защото... вие сте много зависими от наличието на интернет. А неговото изчезване или неизправност при извършване на редакции, особено при инсталиране на компоненти, води до загуба на нерви и време :)

Освен това не всички CMS имат вградени редактори на кодове. И ако съществуват, оставят много да се желае. Например OpenCart няма такъв редактор по подразбиране. Той е наличен при инсталиране на модула CodeManager, но неговата функционалност не е напълно подходяща за удобно и продуктивно развитие.

А вграденият по подразбиране редактор на код в енджина на WordPress като цяло е отвратителен. След като промените бъдат запазени във файл, промените не могат да бъдат върнати. Няма автоматично форматиране на кода или осветяване на синтаксиса. Няма нужда да продължавате повече :)

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

Когато правите редакции на вече работещ ресурс, работата с локално копие също има много предимства в сравнение с отдалеченото редактиране. защото Ако има някаква грешка по време на онлайн редактиране, възстановяването на сайта ще отнеме известно време, през което време ресурсът ще бъде недостъпен. И ще загубите потребители, трафик и място в резултатите от търсенето на сайтове, чиито роботи няма да могат да индексират недостъпния ресурс.

За да възстановите работата си, ще ви трябва актуална версия резервно копиесайт (backup), който не винаги се съхранява от хостинг доставчика, а ако е, не винаги е свеж. Когато работите с локално копие, подобни проблеми няма да са ви познати, т.к Няма да правите промени директно в сайта и винаги ще работи.

Ако се провалите, когато работите с локално копие, винаги можете да получите резервно копие, като просто изтеглите файловете от сървъра. Най-многото, което ще пожертвате, са загубените промени. Но никой не е имунизиран от това, просто бъдете внимателни, когато правите редакции :)

Едно от основните предимства този методВъпросът е, че когато инсталирате CMS на вашия локален компютър, имате възможност да работите, без да сте обвързани с интернет.

Лично на мен тази функция ми помогна много, когато бях на свободна практика, докато работех във фабрика. Нямахме никакво интернет покритие, дори за бизнес цели.

Беше възможно да се свържете онлайн, като използвате телефона като модем, но при тази скорост зареждането на обикновен уебсайт отнема около 5 минути. И дори тогава само там, където сигналът проби :)

За себе си мога да кажа, че не съм горещ привърженик на нито един метод. Всеки има право на живот. Трябва да действате ситуативно.

Инсталиране на шаблон

Независимо от вида на вашия ресурс и двигателя, който използвате, когато създавате уебсайт на CMS, основните възможности винаги не са достатъчни. Това твърдение е особено вярно в случая.

Ако създавате новинарски сайт, портал или блог, тогава дизайнът не е толкова критичен. Ако трябва да създадете онлайн магазин или още по-добре уебсайт за игри, тогава графичният дизайн трябва да бъде едно от първите места при проектирането на ресурс.

Графичните шаблони и темите за дизайн са предназначени да помогнат при проектирането на уебсайт в съответствие с избраната тема и като се вземат предвид всички вкусове на собственика (в зависимост от двигателя, имената на обектите могат да варират).

Намирането им, като правило, не е трудно, защото... за щастие те са налични в голямо изобилие по целия свят World Wide Web. Можете дори да го поръчате от програмисти индивидуално. Проблемите обикновено започват по време на инсталацията. Това е особено вярно за разработване на уебсайтове на CMS, които нямат инструменти за автоматично инсталиране на шаблони.

Следователно отделни статии ще бъдат посветени на инсталирането на шаблони за конкретни двигатели, засягащи всички нюанси на този процес.

Инсталиране на модули

Същият неразделен етап от създаването на уебсайт на CMS като инсталирането на шаблон. Въпреки доброто основни възможностидвигателят и неговата функционалност явно не са достатъчни.

Ако вземем споменатия по-горе OpenCart като пример, тогава по подразбиране той няма метод на плащане чрез WebMoney и Yandex.Money. Опциите за доставка не включват различни куриерски услуги. И така нататък... При безплатните продукти това явление се среща постоянно.

Ситуацията е малко по-добра, но все още не, не и ще изскочат недостатъците на разработчиците. Освен това някои от основните функции може да не ви задоволят. Поради тази причина се налага допълване на магазина с различни модули.

Относно процеса на инсталиране на модули при създаване на уеб сайт на CMS можем да кажем, че нещата са 1 в 1 с шаблоните. Намирането е лесно, но инсталирането е трудно :)

Ето защо в уроците за създаване на ресурси, базирани на различни двигатели, ще подчертаем този проблемотделна статия.

Прехвърляне към хостинг

Този етап от разработването на уебсайт на CMS е особен недостатък на разполагането на локално копие на вашия компютър. Но няма защо да се страхувате от него, защото... Нищо му няма :)

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

Един от най-разпространените е FileZilla, който аз лично използвам и препоръчвам на вас.

Съдържание на сайта

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

Новини, статии, продукти - колкото повече от тях, толкова по-успешен ще бъде вашият уебсайт.

Просто е :)

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

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

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

Оставете вашите мнения и желания за прочетеното в коментарите. Споделете публикацията с приятелите си на в социалните мрежиизползвайки бутоните под статията, ще бъда много доволен :)

Също така се абонирайте за новините на сайта, които ще ви бъдат изпратени по имейл, за да сте в крак с новите статии и новини в блога.

Успех на всички! 🙂

P.S.: ако имате нужда от уеб сайт или трябва да направите промени във вече съществуващ, но нямате време или желание за това, мога да предложа услугите си.

Повече от 5 години опитпрофесионална изработка на уебсайтове. Работи с PHP, OpenCart, WordPress, Laravel,

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

По време на процеса ще научите как да създавате MySQL бази данни и таблици, да работите с обекти, константи, включвания, сесии и други PHP инструменти. Освен това ще покажем как да отделим логиката на приложението от представянето и да направим PHP кода по-сигурен. Освен това ще откриете много други неща, полезни при създаването собствена системамечти.

Можете да видите готовото приложение в действие на демонстрационната страница (за целите на сигурността режимът само за четене е активиран, така че няма да можете да добавяте, редактирате или изтривате статии). Можете също да изтеглите пълния PHP код на нашата малка CMS с преведени коментари.

Забележка:За да изучавате урочните материали, ще ви е необходим Интернет Apache сървърс инсталиран PHP модули MySQL сървър. За да работите на вашия локален компютър, можете да използвате един от инструментите за уеб програмисти: XAMPP (на английски език), Denwer, Open server или други.

Бележка за безопасност

В реални проекти е по-добре да поставите config.php някъде извън главната директория на уеб сайта, тъй като файлът съдържа потребителски имена и пароли. Обикновено PHP кодът не може да се види в браузър, но понякога поради неправилна конфигурация на уеб сървъра кодът става достъпен. Можете да използвате функцията hash() за хеширане на пароли и съхраняване на хешове в config.php вместо пароли с обикновен текст. След това, когато регистрирате потребител, можете отново да използвате функцията hash(), за да кодирате въведената парола и да сравните резултата с хеша, записан в config.php.

В следващия урок ще изградим основния клас на нашето приложение – Article.

Ако има нужда от създаване на уебсайт или спонтанно е хрумнала идеята да се направи нещо добро и добро за интернет, човекът с тази идея обикновено мисли кой ще създаде уебсайта, върху какво и в какво времева рамка. Обикновено отговорът на въпроса „Кой“ е самият човек. Много по-интересно е да направите свой собствен уебсайт. Вторият въпрос - "На какво" - е това, на което е посветена тази статия.

Науката познава много готови решения, базирани на CMS, като Drupal или Joomla. Изглежда, какво може да бъде по-просто? Инсталирахте пакета от инсталатора, попълнихте няколко страници, избрахте хубав, добре използван шаблон - и се наслаждавате на живота. В същото време без програмиране, евтино и весело. Плюсове при използване на CMS:

1) Простота и скорост на разгръщане. Можете да направите уеб сайт за 5 минути.

2) Наличието на много модули, които ще разширят функциите на сайта в бъдеще.

3) Лесна поддръжка, тъй като има готов админ панел, който може да бъде обучен на всеки за 5 минути.

Но на пръв поглед всичко е толкова хубаво. Както знаете, безплатното сирене идва само в капан за мишки. Каква е уловката? Ето какво:
1) Всяка CMS е универсална. Лесно може да не вземе предвид тесния ви фокус. Например, трябва да направите уебсайт на катедра - нито една CMS не съдържа модули за работа в такава специфична област (студенти, преподаватели, оценки, присъствие). Като цяло, рано или късно ще трябва да добавите още, ако нямате уебсайт визитка.

2) Тъй като CMS се опитва да покрие целия спектър от задачи, вероятно ще има някои функции, които не ви трябват. И ще трябва да ги търпите, което естествено ще забави зареждането на страницата и ще натовари сървъра. Опитайте се да прецените колко ненужни SQL заявкиотива в базата данни в стандартна CMS? Но повечето хора дори не се замислят какво се случва вътре и често всичко там не е много добре оптимизирано.

3) Да, на пръв поглед има много безплатни модули, които могат да бъдат изтеглени и инсталирани, ако възникне необходимост от разширяване на функциите на сайта. Но веднага щом възникне такава реална нужда, веднага става ясно, че един модул е ​​извит, друг е прост, а третият не прави точно това, което е необходимо. В резултат на това все още трябва да работите с файл, да губите време, да плюете по глупости в кода на някой друг и да инсталирате безкрайни патерици.

4) Въпросът за качеството трябва да е на първо място. Кой пише тези безкрайни безплатни модули? С цялото ми уважение те са написани от ентусиасти, чието ниво на познания лесно може да се окаже много ниско. Готови ли сте да поверите проекта си на неграмотно написан код?

5) Стандартни средстваимат стандартни отвори. Ако хакер види, че използвате определен компонент, той със 100% вероятност ще го хакне - или ще намерите готов експлойт, или сам ще разберете дупката (знаейки изходния код, това не е проблем).

Този списък може да бъде продължен безкрайно, просто е очевидно, че можете да използвате стандартен CMS само когато относителната стойност на проекта е ниска и прогнозираното натоварване също ще бъде ниско. Ако искате висококачествен уебсайт, специално съобразен с вашите нужди, не можете без програмиране. Но това са разходи за труд, което естествено оскъпява проекта. Дори ако човек прави всичко сам и за себе си, той все още губи ценното си време, което може и трябва да бъде отчетено и оценено.

Разбира се, ако решите сами да програмирате уебсайта си, вие ще имате своя собствена CMS, която ще изгладите и разширите с следващи проекти. Можете, разбира се, да подадете стандартен CMS - но разходите за труд ще бъдат доста сравними, защото вие също трябва да го проучите и да разберете как работи.

Накратко, балансът на силите е важен навсякъде. Ако се чувствате достатъчно силни, за да поддържате и коригирате стандартната CMS на някой друг, можете да го направите. Но преди да започнете работа по уебсайт, винаги трябва внимателно да обмислите и проектирате всичко и е напълно възможно да се окаже, че е по-евтино да напишете уебсайта сами. По-добре е да инвестирате разумно веднъж, отколкото да съжалявате по-късно и да изхвърляте добри идеи и повредени сайтове в кошчето.

Поздрави и се радвам, че се отбихте. Днес искам да започна нова поредица от статии - разработване на собствен CMS (система за управление на съдържанието) или по-просто казано, разработване на собствен двигател на уебсайт. Интересно? Е, тогава напред към изрязването)

Няколко изтъркани фрази

Мисля, че всеки разработчик в един момент започва да мисли за разработването на някакъв чисто личен проект. Някой пише собствена библиотека, рамка, програма, модул... Всеки разработчик иска да даде нещо, от себе си, на този свят.

И така, веднъж написах аудио плейър, който не изискваше кодеци на трети страни, имаше шаблони и четеше всички видове формати, които бас библиотеката позволяваше по това време, имаше 18 еквалайзерни ленти и стандартен комплектефекти (ехо, реверберация и др.). И така, всеки мисли за това, но не всеки го изпълнява или довежда до края. Моят играч никога не е напускал бета етапа и, за съжаление, е бил изоставен. Пренасочих интереса си към уеб разработка: замених Delphi и C++ с PHP и JavaScript. Спомням си тази година беше пуснат PHP 5.3. Малко се отклоних от темата, върнах се 😛

Всеки разработчик има цяла библиотека от изходен код, която мигрира от проект на проект - и уеб разработката не е изключение. В един момент осъзнавате, че от целия този куп несвързани скриптове и класове вече можете да съберете нещо. Ние няма да „извайваме“ нищо, но ще се опитаме да разработим система за управление (CMS) или уебсайт двигател от нулата.

Защо и защо имам нужда от това?

Някой ще каже: „защо да изобретяваме колелото и ко-ко-ко...“ - тогава възниква въпросът: как са стигнали до тук такива хора и какво са забравили? Да, това е велосипед, да, просто е, и в магазина моторите блестят повече, да, да, да.. Но това е моят велосипед, който е сглобен с душа и го разбирам много по-добре от тези, които се предлагат в магазин. Освен това не по-добро ученематериал, отколкото да го изучавате на практика. Нека заменим думата „велосипед“ с PHP и да продължим по нашия път.

Разработването на собствен двигател е чудесен начин да научите езика PHP и да научите ООП (обектно ориентирано програмиране) чрез пример. Не знам за другите, но аз се чувствам еуфоричен, когато моят CMS оживее и още повече, когато някой има нужда от него. И така, поставяйки всички компоненти в едно цяло, можете да заключите защо всичко това е за мен: полезно е за вас и аз ще се радвам на факта, че е полезно: D Нека направя резервация веднага: аз съм не съм PHP гуру и всичко, което ще покажа, не е 100% правилно решение. В допълнение, не толкова отдавна моят хостър започна да поддържа PHP 7, а това е сравнително нов звяр... Така че ще проучим функциите му заедно.

Какво е CMS

Когато имам въпроси, винаги се обръщам към Google и Wikipedia. И ето какво казват те за това:

Система за управление на съдържанието(Английски) Система за управление на съдържанието, CMS) - Информационна системаили компютърна програма, използвани за разрешаване и организиране на съвместния процес на създаване, редактиране и управление на съдържание (тоест съдържание).

*Има разделение на CMS за приложения и Web CMS (WCMS). Тъй като не обмисляме такива с приложения, тогава, когато кажа CMS, ще имам WCMS.

От това определение можем да заключим, че CMS се състои от две основни части:

  • Административен - инструмент за настройка, редактиране на материал и др.
  • Custom - всичко, което трябва да видите редовен потребителкато посетите уебсайта си

Днес можете да намерите цял набор от различни системи от този вид в Интернет. Но вие и аз - тези, които искат да научат езика PHP и да напишат свой собствен уебсайт двигател, използвайки пример - не се интересуваме готови решения. Ние ще се занимаваме сами и този път ще довършим работата - започваме.

Какво трябва да може да прави CMS

Всяко начинание трябва да има представа какъв ще бъде крайният резултат: в нашия случай това е функционалността и възможностите на нашата система за управление на съдържанието.

Ще започнем, като разделим цялата функционалност на нашия двигател на две части: вътрешен и външен.

Вътрешна функционалност - това ще бъде набор от функции, които не се изпълняват видими за окото, Но необходима работа. Такива функции включват:

  • зареждане на рамката и всички нейни компоненти
  • свързване и работа с базата данни
  • работи с файлова системаи кеширане
  • обработка на грешки и изход
  • защита срещу взлом и др.

Те могат също да бъдат наречени „функции на ядрото“. Тоест, това е функционалността, която осигурява основната работа на цялата система и външната функционалност.

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

  • добавяне на нов материал или страница
  • промяна на системните настройки
  • свързване на нови модули
  • търсене в сайта и др.

Тези функции също могат да бъдат наречени „потребителски“, тоест тези, които се използват от обикновен потребител или администратор за постигане на някаква цел.

Да кажем, че съхраняваме текста на нашата статия в една от таблиците на базата данни, но не ни харесва и искаме да променим текста: като щракнете върху бутона „редактиране“, използвахме външна (потребителска) функционалност. Тази функция от своя страна се свързва с базата данни (база данни), прави избор от таблицата с нашите статии и извежда текста за по-нататъшно редактиране - това вече е ядрото или „вътрешната“ функционалност. Затова променихме текста и щракнахме върху бутона „запазване“ - стартирахме персонализирана функция, която отново използва функционалността на отровата и т.н. Надявам се това да е ясно от примера.

Сега, когато е установено взаимно разбирателство и се надявам да е така, предлагам да преминем към следващата стъпка и да дефинираме общата функционалност, която искаме да приложим. Вече имам такъв списък в главата си и предлагам да започна с него. И така, какво искам да внедря в моята CMS и да ви покажа с пример как да го направите:

  • Добавяне, редактиране и изтриване на статии и страници на уебсайтове
  • Внедряване на плъгини и добавки
  • редактор на визуални материали
  • работа с шаблони и редактирането им от самата система
  • CNC - така наречените „Разбираеми за човека URL адреси“ или връзки, които можете да видите в моя блог.
  • защита срещу хакване и SQL инжекции
  • възможност за регистриране на нови потребители и разпределяне на правата им за достъп до раздели на сайта


Свързани публикации