Enterprise content management and framework

v4.2.25 2024-11-18 08:05 UTC

README

SproutCMS is a flexible and feature rich cms and application framework, developed in PHP, designed to enable quick and agile custom development. SproutCMS was built to reward innovation and encourage developers to produce complex applications. It is built by developers, for developers.

Website: http://getsproutcms.com/

Development docs: http://docs.getsproutcms.com/

User manual: http://manual.getsproutcms.com/3.0

Requirements

  • PHP 8.1 or later

  • A web server, e.g. Apache or nginx

  • MySQL 8.0 or later, or MariaDB 10.3 or later

  • Composer 2 or later

Getting started

  1. Run composer create-project sproutcms/site
  2. Run composer serve
  3. Browse to http://localhost:8080/

This is a quick start example. For a detailed installation walk-through see INSTALL.md

Deployment

SproutCMS runs natively with git deploy.

  1. Set up your remote, e.g.
git remote add production "user@example.com:/apps/mynewapp"
  1. Run the setup task
git deploy setup -r "production"
  1. No need to run git deploy init as this has already been done

  2. Push the code

git push production master

Development tools

To run unit tests, execute the following from the root directory:

$ composer test

To run NStrack, our namespace issue finder and fixer, run from the root directory, e.g.

$ composer nstrack

To add license blocks to recently added files, run the following from the root directory:

$ php tools/license_block/license_block.php

Publishing

(for contributors)

To publish a new version simply create a git tag with the next appropriate version. This is then automatically pushed to packagist.org via a web hook.

We've created a script to automate this:

./tools/publish.sh v4.x.x "My new changes"

For example, given the last version (from git log) is v3.2.10 then tag and push v3.2.11.

Please be careful and don't publish untested code. Keep your messy business in a branch and require it into your projects using the dev- prefixes.

Such as:

composer require sproutcms/cms:dev-my-broken-branch

Or use the composer patch-locals script to symlink the dependency while locally building your site.