CMS в 40 строк кода! (PHP и RedBean ORM)

Автор: Nayjest Категория: php

CMS в 40 строк на PHP и RedBean ORMЭто пример того, какой мощной может быть RedBean PHP ORM.

Ниже вы можете ознакомиться с исходным кодом системы управления контентом(CMS) для веб-сайтов размером всего в 40 строк кода. Чтобы запустить эту CMS, вам нужно только настроить соединение с БД!

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

Никаких настроек больше не нужно, никакого начального содержания в БД, никакого XML mapping’а, никаких шаблонов, ничего! Все что вам нужно — только файл с этим кодом на PHP и библиотека для работы с БД: RedBean ORM.

<html><head><title>Пример очень маленькой CMS на PHP</title></head><body color='black'>
<h1>CMS Example</h1>
<?php
$self = $_SERVER["PHP_SELF"]."?";
require("../redbean/allinone.php");
RedBean_Setup::kickstartDev("Page","mysql:host=localhost;dbname=tutorial");
if (!R::exists("page",1)) { $page = new Page; $page->setTitle("root"); $page->save(); }
?>
<?php if($_GET["type"]=="editpage"): $page = new Page($_GET["id"]); ?>
	<form action="<?=$self?>type=savepage&id=<?php echo $_GET["id"]; ?>&pid=<?php echo $_GET["pid"]; ?>" method="post">
		<input type="text" name="title" value="<?php echo $page->getTitle(); ?>" />
		<br /><textarea name="intro" ><?php echo $page->getIntro(); ?></textarea>
		<br /><textarea name="body" ><?php echo $page->getBody(); ?></textarea>
		<hr /><input type="submit" name="save" value="save" />
	</form>
<?php else: ?>
	<?php if($_GET["type"]=="savepage"):
			$parent = new Page( max($_GET["pid"],1) );
			$page = new Page( $_GET["id"] );
			$page->importFromPost("title,intro,body");
			$page->save();
			$parent->attach( $page );
	endif; ?>
	<?php
		$currentparent = new Page(max($_GET["pid"],1));
		$pages = $currentparent->children();
	?>
	<?php foreach($pages as $page): ?>
		<br /><a href="<?=$self?>type=editpage&id=<?php echo $page->getID(); ?>&pid=<?php echo $_GET["pid"]; ?>">edit</a>
		<a href="<?=$self?>type=overview&pid=<?=$page->getID();?>">beneath</a>
		<span><?=$page->getTitle()?></span>
		<br />
	<?php endforeach; ?>
		<hr />
	<?php if ($_GET["pid"] > 1): ?>
		<a href="<?=$self?>type=overview&pid=<?=$currentparent->parent()->getID()?>">page up</a>
	<?php endif; ?>
	<a href="<?=$self?>type=editpage&pid=<?=$currentparent->getID()?>&id=0">add new page</a>
<?php endif; ?>
</body></html>

На английском об этом здесь.
В ближайшее время я планирую написать серию статей об RedBean ORM. Это самая замечательная оbject-relational mapping system для php, которую я когда-либо видел, и она колоссально экономит время и нервы веб-разработчикам.




48 Комментариев на “CMS в 40 строк кода! (PHP и RedBean ORM)”

  1. Zizzle сказал:

    Создание таблиц в БД вот так налету – это LOL :D

  2. Zeus сказал:

    Ваще ебанашки – ктож так параметры БД открывает =)) – «Насколько мощной может быть CMS» – хахахахахаха lol

  3. diablero сказал:

    require(«../redbean/allinone.php»)
    Уже не 40…

  4. Толя сказал:

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

  5. Эдуард Зи сказал:

    redbean php orm предлагает весьма занятный подход к созданию классов-моделей для работы с БД, но мой выбор — старые, проверенные, стабильные библиотеки.
    Doctrine, Propel — наше все

  6. Oreн сказал:

    интересный выбор в качестве альтернитивы обычным ORM для PHP, ждемс, когда выйдет стабильный релиз, последняя версия этой библиотеки все-таки 0.8.2

  7. kix сказал:

    Интересная вещь.
    Кстати, вообще-то классная идея — создавать таблицы на лету. Еще бы оно умело так же «на лету» привязываться к уже существующим — вообще цены бы не было.

  8. программист сказал:

    Хорошая идея создания простой CMS. Респект автору.

  9. кyкyшка сказал:

    Достаточно спорно, но как вариант имеет право на существование

  10. Юрий сказал:

    Здорово придумал, только не думаю что такая CMS, сможет быть надежной

  11. denaie сказал:

    это либо прикол такой либо она инклюдит несколько мегов кода

  12. Nail-Fashion сказал:

    а как насчет защиты? хотя думаю ничего важного под такой cms не может быть

  13. Svened34 сказал:

    Чтот она немного стремная, никогда раньше не видел CMS в 40 строчек кода.

  14. Tasyuta сказал:

    Для общего развития пойдёт.

  15. Кирилл сказал:

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

  16. Рыбак сказал:

    Функционала 0. Этот код для обучения детей )

  17. 3TAJIOH сказал:

    Провальная CMS. Может авторы в скором времени научатся писать нормально обновят свою cms в 40 строк)))

  18. Тальное сказал:

    А мне нравится! Такая себе альтернатива Нано-ЦМС. Люблю компактность, а нарастить НУЖНЫЙ функционал при наличии прямых рук не проблема ;)

  19. ОченьЗлой сказал:

    Нет, ну это можно всё-таки воспринимать только как прикол.. Прикольный прикол.. А то не дай Бог сокро у каждого школьнега будет свою кмс-ка :)

  20. 7off-service сказал:

    Интересно, подойдёт ли она к моему сайту.

  21. Дес сказал:

    Очень все похоже на большую лажину!
    Даже и время терять на тестирование не охота!

  22. sergey сказал:

    интересный код…попробую и потом отпишусь.

  23. money сказал:

    спасибо за наводку !

  24. Morfiy сказал:

    CMS от дяди Васи)))) Для какого-нибудь сайта-визитки может и пойдет, только наверняка жрать ресурсов будет уйму.

  25. Турецкий сказал:

    Если даже движок и будет когда-то успешным, то начало не очень ) Будем ждать..

  26. Татьянка сказал:

    Хочу выучить пхп, кто знает толковые уроки для начинающих

  27. Svictor сказал:

    А вкратце, что она может еще?

  28. Русалка сказал:

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

  29. Максим сказал:

    Такого не бывает, это же просто какая то подделка а не CMS, или она инклюдит кучу кода где нибудь

  30. Comitatus сказал:

    Ну что, кто-то из здесь присутствующих, пробовал это в деле?

  31. Alex сказал:

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

  32. Валек сказал:

    Сырое все какое-то :(((
    В таком виде реально не проканает!

  33. hardup сказал:

    Ну это Cms назвать сложно, скорее скрипт.

  34. Мориган сказал:

    Зато это скрипт вполне подойдет для простого сайта, без претензий на портальность.

  35. lyrics сказал:

    тут упор на минимализм) так что эта цмс чисто для статистики

  36. Руслан сказал:

    Хоть и для простого сайта, но простинько и со вкусом!

  37. Валерий сказал:

    Этот движок куда применить можно ?

  38. asusik сказал:

    нечего себе.Я в шоке.40 строк кода это просто *****

  39. Андрей сказал:

    класс))) только для нормального использования его еще дорабатывать и дорабатывать..

  40. Jump сказал:

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

  41. Дмитрий Агафонов сказал:

    Нет, 40 строк, это конечно тянет на рекорд, но все-ж слишком сурово (Дулин и Михалыч отдыхают)…

    Однако, ради интереса, сейчас запущу :)

  42. Lilya сказал:

    Мне кажется, что серьёзные проекты на него вешать рискованно….

  43. Kiloservers сказал:

    Jump в чем то я с вами согласен!

  44. Артём сказал:

    Спасибо за этот код возможно пригодится

  45. Александр сказал:

    даже для сайта-визитки не совсем подойдет эта cms

  46. Hifdin сказал:

    Надо бы протэстить.

  47. lego сказал:

    НУ ето совсем простая cms

  48. armagedon сказал:

    Интересно, а выйдет ли новая версия в 41 и в 42 стоки? )))
    А по существу – цмска только для ознакомления ,никакой практической позы от неё не будет.

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