Багато в кого як у начинаючих веб-програмістів, або з часом у вже достійних програмістів постають питання:
1. Що краще: фреймворк або CMS?
2. Яка CMS краща, або яку обрати?
3. Який фреймворк кращий
4. А може все писати руками та не треба тих CMS або фреймворків?
Річ піде про PHP.
З цього приводу наче написано багато статей, багато холі-варів на форумах закінчилися нічим. Я спробую з свогобоку дати деякі поради та відповісти на ці питання, бо й мені задають багато таких питань і , честно кажучи,вже вхлв відповідати на них :-)
Отже дуже коротко що чого:
CMS (Contant Management System) – система керування контентом.
Framework – це набір модулів та платформа для створення свого програмного продукту.
Коротко кажучи різниця поміж CMS та фреймвоком полягає в тому, що CMS це вже готовий до використання продукт,в той час коли фреймворк це “средство розробки”. Фреймворки достатньо часто використовуюсться для створення CMS (це можуть бути існуючи фреймворки, або спеціально розроблені для CMS).
Тобто створити за допомогою фреймворку CMS – можливо, а навпаки ні. :-)
Існуючих CMS досить багато, в наш час їх можна обирати вже не за тех. даними, а за вподобанням логотипу або назви.
Іноді можна почути:
“а тобі на чьому сайт робили?”
“ на …”
“фу.. ти шо дурний?!”
Запам“ятайте не важливо на чьому зроблений ваш сайт, важливо як і ким.
Трохи пробіжимося по CMS. Щоб ви розуміли всі ЦМС це такий собі phpmyadmin з додатковими фішками, в середньому всі ЦМС вміють одне й те саме, але є деякі “але”, на цьом я спробую трохи зупинитися.
ЦМС поділяються на платні та безкоштовні.
З платних можна зупинитися або виділити як найбільш розповсюджені DLE та Bitrix
також я поділяю ЦМС на “наші” (пострадянськи автори) та “ненаші”
Скажу, що я дуже не люблю “наші” ЦМС, хай не ображаються їх автори та прихильники, але для цього є декілька причин:
1. кожна студія “супер”, “пупер”, “мега” веб-дізайну вважає що вона повинна написати свою персональну “найкращу” в світі систему керування.
2. кожен студен здавши на “3” курс програмування вважає що курсова з написання “програмного комплексу CMS” написана і він зараз наворотить “такееее”
3. але саме головне це відсутність стабільності в розробці, в першу чергу фінансування.
Я дуже поважаю “вітчизняних” програмістів і не сумніваюсь в їх кваліфікації, я на щастя з багатьма знайомий, але всі вони працюють на західні компанії. В цьому і є відповідь на п.3. Чому ж так? Зібралась команда яка хочу створити якийсь продукт, в нашому випадку CMS, на натхненні та бажанні створили, зявилась наприклад версія 1. Але люди хочуть їсти, в ночи не сидіти коло компьютера :-) і тут виникає суперечка , з одного боку треба витрачати час щоб заробляти грощь “щоб йсти”, з другого є ідея. Продукт може вийти якісним і у більшості так і є, але через деякий час постає питання в доповненнях, модулях, виправлення помилок, інтеграції з сервисами, форумами та інше, а робити це вже нема коли або нема кому…
Отже в кінці кінців сайт розроблений на такий системі скоріш за все буде дуже важко розширювати, интегрувати, маштабувати тобто це рішення “само в собі”.
Продукти які платні, це стосується як вітчизнних проектів так і закордоних, їх єдуже велика кількість та серед них є продукти кі прикро навіть дурно роздавати, а є дуже потужні та цікаві.
я вважаю що CMS треба брати “західного виробничтва”, якщо ви з часом хочете розширювати функціонал сайту.
я зупинився б на наступних безкоштовних системах керування:
WordPress, Joomla, Drupal, TYPO3, e107, ezPublisher, TextPattern, MODx, PHP-Fusion.
Розширювати цей список можна до нескінченості.
Чому я зупинився на цих ЦМС – я з ними мав справу, до того ж я слідкую за ціми проектами ( це не говорить, що інші системи не бачив, або не працював або не слідкую, але ці привернули мою увагу найбільше).
WordPress – мені не подобається, тому що … тому що вона вибачте схожа на FireFox. Да для неї є багато розширень, багато темплейтів, але вона якась дуже рафінована. Як на мене це зручна система для швидкого розгортання блогу. Багато хо скаже: “да на неї можно зробити що завгодно” і вони будуть праві, але ж і лопатою можно вишні збирати… Чибагато на цій ЦМС красивих та якісних інтернет магазинів або НЕ блогових інформ. ресурсів?
Як що ви таки бачили то запамятайте.
Система достатньо зручна як в “адмінці” так і в стандартнії навігації фронтенду, керувати системою зможе навіть “домогосподарка” (це не негатив!), достатня кількість різних розширень, але не намагайтесь зробити з ней портал, або магазин.
Порог входження низький.
Joomla – тут будуть зараз великі суперечки з прихильників Друпалу та Джумли :-) Джумла як і друпал задумана скоріш як портальна система, якщо джумла лишилась на цій стеджці то Друал скоріш за все пішов в бік. Але трохи концетруємось на Джумлі.
Важка – як і всі “комбаїни”, має свій API, за допомогою Джумли можна зробити практично все що завгодно, прихильності або коїсь конкретної специфікації нема. Можливо найбільша кількість розширень з усіх систем про які йде мова. На джумлі є крупні і цікаві проекти.
Поріг входження вищий за WordPress але не такий як наприклад в Друпалі або в TYPO3.
з приємних властивостей – можливість нормальної міграції 1.0 -> 1.5 -> 1.6\1.7
дуже поширене комюніті, негатив тільки те що на форумах багато починаючих, кі не хочуть нічого читати.
Drupal – достатньо цікава CMS зі своїм внутрішнім синтаксисом. Задумка була на такий самий “комбаїн” як і Joomla, але в універсальності програє. Розширень багато, але меньше чим у Joomla або WordPress достатньо вузький вибір у магазинах, та галереях.
Трохи поганого – так само важкий як і Joomla в деких випадках “помирав” навіть раніше за Joomla, комюніті велике, але не завжди дружелюбне, поріг входження достатньо великий. Важка або неможлива міграція поміж гілками.
На друпалі є крупні та цікаві проекти.
TYPO3 – розробники німці, вважаєтьс однією з самих безпечних систем.
Мало розширень, нема темплейтів, має свій синтаксис. Поріг входження високий. Але тут треба згадати декі “але” – філософія цієї системи дещо інша і система розрахована на розробника. На цій системі цікаво робити якісь “довгограючий” проект.
Цю систему люблять банки та велики корпорації.
e107 – чомусь не дуже відома у нас і достаньо відома на заході. Система могла би бути конкурентом WordPress, DLE та PHP-Fusion одночасно якщо б їй трохи агресивніше розвивали. В інсталяціїсистеми є пракстично все що потрібно, рознирення є, але не таки розповсбджені як для WP, Joomla, Drupal
з темплейтамі те саме, але намалювати свій дуже легко. Я бачив декілька непоганих західних проектів на цій системі.
ezPublisher –
TextPattern – дуже легка та швидка CMS, створена для блогів або інф. сайтів, хоча з її допомогою можна зробити і інтернет магазин та інше. Ця CMS вважається створена для дизайнерів, але на мою думку і для програмістів те ж.Система має свій дуже цікавий синтаксис, який не такий важкий у вивченні як у Друпала або ТИПО3, до того ж дозволяє генерувати теги користувача, за рахунок цього можна фактично без знань PHP та мінімальними занннми HTML&CSS наробити чього завгодно. :-) Ця CMS дуже мало відома на теренах пострадянських країн, але це скорішь погано дл нас, ане для TextPattern.
Незвичайність для початківців – дуже проста (без малюнків, ajax ) адмінка, але як на мене це приклад адмінки. Комюніти фактично тільки англійське, існує textpattern.ru але він неактуальній стан має. На російськомовному форумі Вам можуть допомогти або підсказати тільки декілька людей.
Небагато шаблонів до того ж встановлення шаблонів в TextPattern нетривіальна задача. Розширення є, їх достатньо, але при нестандартних задачах треба буде робити “руками”.
є цікаві сайти на цій CMS але західні.
MODx – приклад коли CMS зроблена на одному з розповсюджених фреймворків – CI. Система дуже стрімко розвивається, достатньо цікава як що ви хочете займатися програмуванням на вже готовому каркасі. Честно кажу що цікавих сайтів на ній не бачив, буду вдячний якщо хтось наведе приклади. За цією системою спостерігаю достатньо давно і чекаю коли настане її час. Як на мене систем для вивчення та дослідів.
Дуже непогане комюніті.
PHP-Fusion – портальна система, вважається достатньо стабільною, та безпечною. “З коробки” ви маєте практично повний функціонал для порталу. Дуже зручно організувати сайт для клубу компьютерної гри, файловий архів або щось схоже. Іноді складається враження що PHP-Fusion для цього і створений. Темплейти є, але дуже однообразні, хоча намалювати або написати свій темплейт не визиває багато проблем (організація темплейтів проста). Доповнення є , але їх не багато, хоча достатньодля огранізації сайту будь якої складності.
У всіх CMS є безкоштовні та платні розширення, треба зауважити що в своїй більшості платні розширення виправдовують свої гроші, але є і безкоштовні альтернативи, які в деяких випадках є негіршими, а іноді і кращими. До вибору озширень треба підходити дуже уважно і обережно, якщо у вас нема практики в цьому то користуйтесь форумами, в першу чергу почитайте відповіді на аналогічне вашому запитанню. Спробуйте поекспериментувати на тестовому компьютері, створіть схожу ситуацію до якої ви їдете, тільки після цього робіть свій вибір.
отже на мою думку, якщо Ви вирішили зробити сайт собі, або Ви замовляєте сайт в когось Вам треба взяти до уваги та відповісти собі напитання:
1. Що ви хочете бачити на сайти зараз
2. Що буде з вашим сайтом через рік, два
3. аудиторія сайту
4. скільки відвідувачів ви плануєте, хочете бачити на сайті
5. скільки грошей (якщо ви замовник), часу (як що ви робите самі) ви згодні витратити
6. [стосується замовника] скільки увагита часу ви приділите при створенні сайту, та скільки будете витрачати зусиль на його підтримку, наповнення та інше.
7. подумайте, а може вам нетреба сайт, а простіше зареєструватися на facebook,відкрити свій ЖЖ? :-)
Для замовників сайтів
треба розуміти