Introductory Overview of CMS Diem
Six months ago, I learned from a colleague about this CMS and she was very interested in me, recently I got around to digging into it, I hasten to share my impressions with hawkers and habragosts.
Detailed description and screenshots below
Additional requirements: APC, mbstring, graphviz, PHP! = 5.2.9
Actually, for a simple site standard virtual hosting will go, for projects with a load, use VDS with installed APC
Firstly, Diem as an application written in symfony-framework preserves the entire development structure:
yml - configuration, built-in cache, unit tests, three-level structure of templates (layout - module template, partial template)
Secondly, Diem has its own control logic code, naming notation , built-in search system , plugins for popular tasks, code generation for self-written modules.
Thirdly, in my opinion, the main advantage for the end user is a convenient content administration interface. I will try to tell you more about this later.
The admin admin page looks like this:
We see summary information generated by server logs and google-analytics statistics.
In the upper panel there are buttons for creating a new page, updating the cache, menus, APC usage indicator, and symfony debugging information (about the duration of the request, the number of calls DB, memory usage, etc.
impressive, is not it? and it's all going in the version?.
to write your own modules has its own approach: you describe the structure of the database and the module behavior in yml file, for example: Start those from the console ./symfony dm: setup and ... The script generates the necessary modules, Action Games and said circuit patterns, and you can already see in the admin section for goods management
Based on the list and show keywords, templates are generated for viewing products in the form of a list and a single display ...
Is it even more impressive?
Then wait for the articles to continue ...
Lastly, a few screenshots about which I no longer have time to write in detail:
Editing the feedback form (again, the form is generated by the yml settings), it remains to overlay the css-design and the form is ready for use (validation, writing to the database , display in the admin panel provides diem)
It remains to drag the mouse with the mouse to the desired location on the site and that's it.
In the left tab “pages”, as you can guess, the site structure is hidden: it is used when editing menus, for quick navigation, filling directories, etc.
Links:
Project website
Sites created on cms-diem
Development of sites on cms-diem To
interested parties, I suggest teaming up to create an adapted version for runet with an expanded set of ready-made modules (for example, a photo gallery, an online store, integration with yandex statistics ...)
Who wants to “play around” - UPD1 installation
guide: we see how much Diem eats memory
with debug turned on and standard settings total ~ 15Mb in normal mode (without debug) and standard settings total ~ 14Mb (1Mb eats debug) with swift_mailer turned off (as advised by symfony developers to increase I'm performance) is also in the region of ~ 14Mb
(swift mailer was not called anywhere - the autoload didn’t load anything, we eat the same amount of memory) we
turn on the page cache: total ~ 6Mb (we save another 8Mb + we minimize database queries) it’s interesting to compare with Joomla and Drupal
Briefly about the main thing
- Powered by Symfony1.4.
Who is not familiar with symfony - getting started tutorial , official web-site . - In addition to the standard admin panel, it has an interactive control interface for the frontend, all changes are loaded via AJAX - which is very convenient when editing
- Integrated Google Analytics, convenient viewing of server logs in the form of graphs, generating an admin interface for self-written modules, a web console and other goodies
Detailed description and screenshots below
Server requirements
- Server: Unix (this is for production, development can be done on Denwer or xampp)
- PHP version> = 5.2.4
- PHP CLI ON
- memory_limit> = 48Mb
- pdo_mysql or pdo_pgsql or pdo_sqlite
- json> = 1.0
- gd
Additional requirements: APC, mbstring, graphviz, PHP! = 5.2.9
Actually, for a simple site standard virtual hosting will go, for projects with a load, use VDS with installed APC
Charms Diem
Firstly, Diem as an application written in symfony-framework preserves the entire development structure:
yml - configuration, built-in cache, unit tests, three-level structure of templates (layout - module template, partial template)
Secondly, Diem has its own control logic code, naming notation , built-in search system , plugins for popular tasks, code generation for self-written modules.
Thirdly, in my opinion, the main advantage for the end user is a convenient content administration interface. I will try to tell you more about this later.
Admin
The admin admin page looks like this:
We see summary information generated by server logs and google-analytics statistics.
In the upper panel there are buttons for creating a new page, updating the cache, menus, APC usage indicator, and symfony debugging information (about the duration of the request, the number of calls DB, memory usage, etc.
impressive, is not it? and it's all going in the version?.
to write your own modules has its own approach: you describe the structure of the database and the module behavior in yml file, for example: Start those from the console ./symfony dm: setup and ... The script generates the necessary modules, Action Games and said circuit patterns, and you can already see in the admin section for goods management
// config/doctrine/shema.yml
Category:
columns:
name: { type: string(20), notnull: true }
body: { type: clob, extra: markdown }
Product:
columns:
category_id: { type: integer, notnull: true }
name: { type: string(15), notnull: true }
body: { type: clob, extra: markdown }
image: { type: integer, notnull: true }
cost: { type: integer(5), notnull: true }
relations:
Category:
foreignAlias: Products
Image:
class: DmMedia
local: image
onDelete: RESTRICT
// config/dm/modules.yml
"Каталог":
category:
model: Category
page: true
name: "Категория|Категории"
admin: true
front: true
components:
list:
cache: true
show:
cache: true
product:
parent: category
model: Product
page: true
name: "Товар|Товары"
admin: true
front: true
components:
listByCategory:
filters: [ category ]
cache: true
show:
cache: true
showLittle:
cache: true
Based on the list and show keywords, templates are generated for viewing products in the form of a list and a single display ...
Is it even more impressive?
Then wait for the articles to continue ...
Lastly, a few screenshots about which I no longer have time to write in detail:
Editing the feedback form (again, the form is generated by the yml settings), it remains to overlay the css-design and the form is ready for use (validation, writing to the database , display in the admin panel provides diem)
It remains to drag the mouse with the mouse to the desired location on the site and that's it.
In the left tab “pages”, as you can guess, the site structure is hidden: it is used when editing menus, for quick navigation, filling directories, etc.
Links:
Project website
Sites created on cms-diem
Development of sites on cms-diem To
interested parties, I suggest teaming up to create an adapted version for runet with an expanded set of ready-made modules (for example, a photo gallery, an online store, integration with yandex statistics ...)
Who wants to “play around” - UPD1 installation
guide: we see how much Diem eats memory
with debug turned on and standard settings total ~ 15Mb in normal mode (without debug) and standard settings total ~ 14Mb (1Mb eats debug) with swift_mailer turned off (as advised by symfony developers to increase I'm performance) is also in the region of ~ 14Mb
memory_usage = 15653864
memory_peak_usage = 15837840
memory_usage = 14266416
memory_peak_usage = 14338544
(swift mailer was not called anywhere - the autoload didn’t load anything, we eat the same amount of memory) we
turn on the page cache: total ~ 6Mb (we save another 8Mb + we minimize database queries) it’s interesting to compare with Joomla and Drupal
memory_usage = 6275864
memory_peak_usage = 6275864