Jarves - Documentation
What is Jarves?
Jarves is a Symfony bundle, you can use in your Symfony project additionally to your regular project. Jarves is a content management system and rapid application framework.
Why Content Management System?
Jarves provides a optional administration gui you can use to give your users the ability to manage/see:
- Pages and domains (move, edit, add, remove)
- Static content (Text via WYSIWYG)
- Files (upload, move, preview, edit images, etc)
- Users, groups, Permissions (very detail permission system when you work with Jarves object model)
- Objects (from the RAD/crud system)
- Bundle configurations
- View logs/dashboard
You can limit the administration gui with the detailed permission ACL system. You can give you users only the ability to manage files (maybe with limited file extensions), or only to manage content, or extend it a bit so they can also manage users, groups etc. You are completely free. Since the ACL system is based on users or groups you can setup almost all permission scenarios.
The administration itself communicates with Jarves completely through a RESTful API, so you could even build your own administration on top of it.
Why Rapid Application Framework?
Jarves provides beside solid interfaces for regular content management (users, groups, content, pages, domains, files, etc) also a system where you can quickly define own objects and CRUD views.
This gives you the power to quickly give your customer a administration interface to manage some content. Content can be anything: Cars, products, categories, ... You only need to define the object itself. Create for a example a Car object, define some properties like id (number, primary key), title(string) and color (string) and let Jarves generate for your the Propel (ORM) schema, its ORM models and update the database schema with its commands. Now you can create in no time crud views using yaml or use the bundle editor, and choose between all available Form Fields. Now you can manage (list/add/edit/remove) your object without writing one line of php or html code. Not only that: You get a full REST API of your objects, automatically.
With the ability to create relations between objects you can quickly build a whole application in minutes. In other systems or pure Symfony you would need days to implement the same because you would need to write every html input field (or Symfony form & validation), every SQL table or ORM model, by your bare hands - not to consider the whole interface with login and permission system etc you would need to develop beforehand.
This describes the customized installation, usually used by developers.
We don't have yet ready-to-use zip files. You still have to install Symfony already, add Jarves as bundle and install all dependencies via composer.
Read the development installation documentation.
Read the Create A Theme documentation, to create layouts for your website.
- PHP 5.6+
- Symfony 3
- *nix OS (Linux, BSD, OSX)
- PHP extensions: PDO, mbstring, gd, zip
- MySQL, PostgreSQL or SQLite
- sass if you want to use the scss auto-transpiler
- Based on Symfony
- Based on Propel ORM (Propel supports MySQL, PostgreSQL, SQLite, MSSQL, and Oracle), http://www.propelorm.org
- Advanced, fast and fresh administration interface
- The administration API is completely abstracted through a REST API
- File abstraction layer (for mounts with external storages [s3, ftp, dropbox, etc]), CDN
- i18n using
getText(with all of its features [e.g. including plural support, contexts]) compatible .po files
- High-Performance through several cache layers
- Session storage through several layers (distributed sessions supported)
- Easy to extend through a fancy extension editor, completely modulized - the symfony way
- CRUD window generator, without writing one line of code
- Easy and integrated backup system, perfect for live/dev-scenarios
- Extremely detailed permission system
- Ships with a solid bunch of UI input widgets (input fields)
- Several flexible authentication layers (e.g. changeable for administration, changeable per domain)
- Secure password storage using up-to-date encryptions
- Feature-rich inline editing (TinyMCE, Markdown, Drag'n'Drop', etc)
- Awesome file manager
Found a typo? The website is based on Markdown, please feel free to send us a pull request! :) github.com/jarves/jarves.io/tree/master/app/jarves/website/jarves.io