Which CMS uses an ORM (Object-relational mapping) - wordpress

If you're aware of a CMS that uses an ORM (either their own or one of the well-known ones), please list the CMS here with the name of the ORM it uses.
If you know that the CMS you use DOESN'T use ORM, please also say so.

Django-CMS which is Python-based uses an ORM. It uses an ORM because it's based on the excellent Django framework which uses ORM (cf. Wikipedia).
This Wiki page lists many PHP-based systems that use ORM. But most of them are frameworks (not CMSs). For example, the CakePHP framework and the Symfony framework which uses Doctrine ORM.
To find CMSs that use ORM, you may want to look for a CMS built with those frameworks that use ORM. Wildflower CMS is build on CakePHP, and there's a bunch of CMSs built on Symfony.

I know that neither Drupal nor Wordpress use ORM. Drupal 6 has it's own database abstraction layer, which is switching to PDO with D7, but it's still not ORM. Both WP and Drupal are built procedurally, and presumably an application should be built on an object oriented paradigm to take advantage of ORM.

Specially in PHP
ORM based cms, i cant remember. i have been working in php and working on various cms. But have not found popular ORM based cms.
I think reason is simple
ORM have extra learning curve, one cms become popular if it have less learning curve. Though many popular cms maintain security but same time they avoid using new things.
WIKI
http://en.wikipedia.org/wiki/List_of_content_management_systems#PHP

modx revolution uses xPDO
xPDO provides raw data access using
native PDO8 extensions when
available, falling back to a PDO
emulation framework that works all the
way back to PHP 4.3.x. It provides a
very lightweight O/RM
(object-relational mapping) layer with
access performance similar to using
the current MODx DB API. With native
PDO performance naturally improving
upon that (it's a compiled PHP
extension written in C), the choice of
using PDO as the exclusive database
abstraction layer, turned out better
than I ever imagined.

Webnodes CMS is based on an in-house developed ORM, with native support for CMS features like revisions, languages etc.
It is very fast, and has an intelligent and automatic cache.
It also excels at handling relations between objects, so you can basically model any type of data with the solution, so you can use it for any type of web application, not just publishing pages.
See more at the Webnodes website.
Disclosure: I work at Webnodes.

Silverstripe supports ORM with CMS

All Django based CMSs use an ORM cos Django uses it's own ORM.
The following are major Django based CMSs.
Django CMS Official Website
Wagtail CMS Official Website
Mezzanine CMS official website
Django CMS seems to be the most popular of these three.
Wagtail follows a Lego block approach.
Here is a comparision of the three CMSs https://www.youtube.com/watch?v=3UC1MNFOjEI

Related

Migration from Propel to Propel2

I want to migrate a Symfony2 project (v.2.7.1) from Propel1.7 to Propel2 (currently "alpha 5").
I'm using various Propel behaviors and third party bundles which relies on "Propel" adaptators to correctly work. It will be very helpful for me to have your comments for each behavior / bundle to know if it's trivial to migrate or if difficulties (and which!) could happen...
Behaviors:
Archivable
NestedSet
Sluggable
QueryCache
Timestampable
Typehintable (willdurand/propel-typehintable-behavior)
Equalnest (craftyshadow/propel-equalnest-behavior)
Geocodable (willdurand/geocoder-bundle)
Third party bundles:
FOSUserBundle
GlorpenPropelBundle
FOSElasticaBundle
Core behaviors
Theses behaviors are still in Propel2
Archivable
NestedSet
Sluggable
QueryCache
Timestampable
Third-party behaviors
Equalnest
The author does not seem confident in the compatibility like explained in this issue. I'll create a specific issue #969 to know the state of the art for managing an "equal nest" in Propel2.
Geocodable
A PR has been done here, but no news for a long time...
There is now a dedicated repo for Propel2.
Core source
The typehintable is in the core of Propel2, so it smells good
Third-party bundles
FOSUserBundle
Propel2 integration is related to that issue; as the typehintable behavior is now in the Propel core, I suppose we have to change the schema.xml supplied by default by FOSUserBundle for Propel.
GlorpenPropelBundle
It seems not compatible for the moment as explained here, but I suppose it would be better to discuss all the subjects covered in this fantastic bundle in a dedicated issue to know how Propel2 manage these problematics.
FosElasticaBundle
Even for Propel1, this bundle was a little bit hard to use, I suppose we have to work for Propel2.
Full links & discussion on github / https://github.com/propelorm/Propel2/issues/966

Which are limits of Community version of the eZ Publish CMS?

I am currently looking for informations about eZ Publish Community version and its limits to develop a public portal.
Furthermore:
Can I use Oracle database? Should I prefer ezoracle to any Symfony extension?
Can I integrate an antivirus solution? If yes which one?
Can I use 2 different instances, one to write and export contents, and another one to import and update contents?
Which newsletter system do you suggest?
Is back-end IE8 and IE9 compatible?
Can I (de)activate contact forms on demand?
Can I integrate a more powerful anti-spam solution than visual CAPTCHA? (ex: reCAPTCHA)
Can the webmaster modify layout elements, such as logos, bannes, aso.
Thank you for your help!
Latest community version is using Doctrine DBAL (through new stack) which supports Oracle. But so far there is no information that someone tried it as the Doctrine support is quite new. ezoracle extension is a legacy extension which might be used but not if new stack is being utilised.
Anti-virus solutions are not something that makes sense to integrate with CMS-es. Those are either client software (CMS runs on web servers) or server side software which is installed on the web server and monitors uploaded files.
You probably describe a content staging kind of setup for which there is no out-of-the-box solution. But the CMS is quite flexible and some solution could be possible to develop.
Solid and integrated one is the cjw_newsletter, but its legacy based. There is nothing similar in the new stack, there might be some Symfony based bundles that could be integrated but would require some development effort. Depends on the integration needed. If not much integration is needed external services are an option
Legacy admin interface is, for the new editor UI which is under development at the moment I am not sure what will be the oldest IE supported. IE8 probably not, maybe just with graceful degradation.
If you mean legacy collected info based forms yes. You can hide the node of the forms for example. In new stack there are no similar implementation yet.
Yes, although it would probably require some web development knowledge. If you use legacy collected info forms you can try to install some of the existing legacy extension that deal with that (e.g. http://projects.ez.no/recaptcha) but to do it in new stack (Symfony based) you will probably need to dig deeper with Symfony Forms and custom controllers or find and integrate bundles that implement this
This depends on how the front-end is implemented. If done properly it should be possible, yes
For more detailed help feel free to use the community forum: http://share.ez.no/forums/ez-publish-5-platform

Is possible to mix Symfony2 CMF and the standard distribution?

We're planning a new intranet for our organization. Some part is like a CMS, and there are some custom-made applications.
The Symfony2 CMF distribution looks fine for building the CMS part of the intranet, but other parts like Doctrine, "normal" SQL databases, etc, looks better for the custom-made applications for the intranet.
Because I need common authorization and authentication system for this intranet (against an Active Directory), I supose that I'll get better results building all in only on app. So, can I mix a CMF application with a normal application, and both use the same database (an Oracle DB)?
Yes you can easily mix the CMF with other Bundles. For example the routing allows using both routes from the CMF as well as "static" routes defined in yml files. Also you can easily also add the ORM next to PHPCR ODM. If you use Doctrine DBAL for storage in PHPCR, you can even reuse the same connection configuration with the ORM etc.
In brief yes it is, and I do this in my own Symfony2 project. I combine both SF-SE and SF-CMF bundles.
In fact, with Symfony2 it's very simple (this is just a matter of choosing the most suitable Bundles; SF is a very decoupled framework, which is why I don't plan to migrate to any other solution for the moment), but I'd like to share some of my experience with doing that. Actually the one most important question to think through to make a decision about how to combine both "worlds" is this:
Composer.
After some inquries I found out that since Symfony CMF is (in a way) based on Symfony SE, and not vice versa, it's better to start with the latter, as it contains the most core features (though I did it also in the opposite way, rather not recommended). So just take a SF-SE's composer.json, take a look at bundles from there you need, and then take a look at differences within SF-CMF's composer.json. You should end up with the most suitable set of bundles.
The basic features from these bundles to look-up for are:
MODEL - Doctrine ORM, PHPCR-ODM, or both - if still not sure, don't hesitate to ask a comment, I'll share here my experience furthere.
ROUTING - the primary question here is how flexible routing do you actually need? If not sure, I'd go with standard SF Router, and then possibly replace it e.g. when still on a dev stage.
OUT-OF-THE-BOX CMS FUNCTIONALITY - bundles such as CreateBundle, MenuBundle or MediaBundle may help you building surprisingly fast, but not quite flexible soltions. In general, I ended up without using most of them, and if using, then I mainly take some Interfaces I do implement in my own Bundles (to ensure future compatibility with possible other bundles to be potentially used).
Besides of these above, I created a number of Bridge Design Pattern and Provider Design Pattern solutions to make some bundles working together, to adjust their functionalities, or simply to decouple things.
In programming almost everything is possible. But think about restrictions delivered with CMF (routing for eg.).
Maybe you should consider Standard Symfony with Sonata? I think CMS pages it's only small part of your system and implementation it in standard symfony will take smallest part (and cost) of whole project.

When not to use prebuilt CMS?

Is there any case that creating your own CMS for a specialized website more advantageous than using a prebuilt CMS such as dotnetnuke or umbraco? Can anyone site a project when they had to create a custom CMS and not used a prebuilt CMS? Where to draw the line from using a prebuilt CMS to a customize CMS? Or is using prebuilt CMS always more advantageous than building your own CMS in any type of content driven website?
With the quality and variety of current open source offerings, I would say it's almost never a good idea to start from scratch. It really comes down to requirements and features. There's a huge variety in the features and user experience of different systems out there. You really need to figure out the priorities (performance vs. ease of use vs. flexibility vs. extensibility vs. SEO) to choose the right one.
I generally go with DotNetNuke with an assortment of custom modules to enhance aspects of its CMS and SEO capabilities. There's just not much you can't do with DNN once you really get to know it. But if performance is your highest priority, another option might be preferred.
I think it depends what the overall goal of the project is. If you are building a marketing website or your project can be easily accomplished with a pre-built CMS then you should certainly start there and build modules or customize a little if needed.
However, if you are building a web application that's core functionality is not just content, page management you have to consider going a custom route. Pintrest, Facebook, Flickr, etc. would definitely not start with a pre-fab CMS.
The Onion started with Drupal at one point but realized their needs were so custom that they ended up doing it all in Python/Django. Plus, with frameworks like Python/Django and Ruby on Rails if you are building web apps you can easily create the CMS features you need.
We do a lot of DotNetNuke, some Drupal and all of our custom web apps we are doing with Ruby on Rails. Once you have the requirements and goals of the project you have to look at your tools and see what is the best for the job. And sometimes it's making your own tools :]
if you move for a prebuilt CMS, you have to use their available functions and do improve whatever your features. but if you go fro a new custom CMS, you are free to customized to the maximum.
What are your requirements? If the majority of your requirements (65% +) are CMS related requirements, than I would strongly recommend looking into existing CMS solutions (opensource or commercial).
On other hand, if your CMS requirements are about 35% of your total requirements, then I would consider implementing in-house, fairly light-weight CMS.
Be aware, CMS sounds like an interesting and easy to tackle task, but when it comes to it, it is likely to be the most complicated project that you have ever worked on, mainly due to its extensibility, security and efficiency related requirements.
It all depends on what the requirements are for the project.

Is there a Django or Rails for the .Net Platform?

Now before I dive too far into this this question, I am aware of nDjango and MonoRail; however, those project seem to be lacking.
What I'm wondering is if there is a solution out in the .Net world that has the following features out of a single box like Rails has in Ruby or Django has for Python. I know tools that do pieces but am curious if there's 1 unified solution out there.
Database Versioning/Migrations
ORM or similar code gen
MVC-based
Pre-generated administrative screens
View generation
Theming / styling
(I'm sure I'm forgetting another cornerstone feature)
There's lots of options that cover one or more of these aspects but is there something in .Net that covers all of them?
Thanks
I have not yet found a solution as you have described, but as you know there are bits and pieces that could be used together to provide a stack that is close:
Database Versioning/Migrations - DotNetMigrations
ORM or similar code gen - Nhibernate, Entity Framework
MVC-based - native to ASP.NET MVC
Pre-generated administrative screens - PLINQO
view generation - available in Entity Framework or CodeSmith templates, PLINQO
Theming / styling - native to ASP.NET
This would provide a stack that is .NET and not another ecosystem sitting on top of a .NET substrate.
You can actually run Rails under the .NET DLR. This allows you to not only access the feature set Rails provides, but also everything else which is available in the .NET ecosystem.
I haven't found a one click installer which gives me everything on your list, but, as you say, I have found excellent solutions for each point on your list which integrate well.
I'm honestly not sure how close this gets you, but S#arp Architecture seems to be trying to cover a lot of this ground in a single package.
There is a django for .net, the name is django!
In the web there is a lot of post about django running with ironpython (a implementation of python for the "virtual machine" of C#, CLR, i think)
there is also ndjango - the django templating language written in f# for .net. you can use it with bistro or asp.net mvc (or whatever else that you plug it into)

Resources