Blog Post Image
5 October, 2020

Sulu CMF

Icon

Luigi Laezza

Web Development

Today I would like to talk about SULU CMF, which is at version 2.o.

Sulu is a  is a fantastic project based on Symfony 2 full stack and other open-source application like PHPCR, Doctrine, Backbone.js, and Require.js.

It is meant to help developers create multi-platform, multi-language, and multi-channel sites giving some boilerplate functionalities.

Ah did I mention that it works great and it looks sleek ?! Check the gallery below and don’t forget to download the project to give it a try.

INSTALLATION
To begin with, you will need the code, which can be cloned from the sulu-standard repository on GitHub.

$ git clone https://github.com/sulu-io/sulu-standard.git

After the clone has finished, you can change to the cloned directory, and check out the latest version of Sulu:

$ cd sulu-standard
$ git checkout master

Use Composer to install Sulu’s dependencies:

composer install

At the end of the installation, the Composer asks you to submit the values of different parameters. For now, just press “Enter” to keep their default values or change them to whatever you prefer.

The next step would be the setup.

Sulu runs around the concept of webspaces.  Each of these webspaces cofigure a content tree. We can start with copying the default file and modify it accordingly:

cp app/Resources/webspaces/sulu.io.xml.dist app/Resources/webspaces/sulu.io.xml
 

Once done, is time to pass to the templates, each content is based on a template which needs to be defined. To start also in this case,  we can use the  default files:

cp app/Resources/pages/default.xml.dist app/Resources/pages/default.xml
cp app/Resources/pages/overview.xml.dist app/Resources/pages/overview.xml
cp app/Resources/snippets/default.xml.dist app/Resources/snippets/default.xml

No we need to complete the installation (these are OSX commands, go on sulu's website for more):

rm -rf app/cache/*
rm -rf app/logs/*
HTTPDUSER=`ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
sudo chmod +a "$HTTPDUSER allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs uploads uploads/* web/uploads web/uploads/* app/data
sudo chmod +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs uploads uploads/* web/uploads web/uploads/* app/data

Run the following commands to complete the installation:

app/console sulu:build prod (load fixtures, and does some more setup)app/console sulu:build dev (same as above)

If you need more users or roles:app/console sulu:security:role:create (create a security role)app/console sulu:security:user:create (create an user)

Done! Now you can go to the /admin path and start playing with Sulu. 
Have fun, and let me know how you liked it.