How to install V4 manually?


I know that SS v4 prefers composer for the installation, but for any reason, if I cannot use composer, how can I install it manually? Any doc on that?


As I understand it, installation without composer is not officially supported.

Hummm… that’s a worry.

Installation without composer is possible, but a lot of effort since you’ll need to download and unpack all the various libraries and packages manually. Maintenance without it will become a massive chore very fast, to the point where it’s pretty impractical.

Is there a reason you don’t wish to use composer? It’s pretty standard for complex PHP applications now as a way of managing dependencies and code. You can run it locally only… you don’t need to run it on your actual production servers.

No specific reason, just wondering. But for me, the whole thing of “easy installation” is relative. Because you only install an application once, right? And about managing the dependencies, aren’t they part of the CMS? Or are you talking about third-party ones?

You may only install your application once, but every time you want to update it with a security patch, or feature release, then it gets complex. Silverstripe has a regular release cycle of updates, so trying to manage that manually would be a nightmare.

Also, you may only install it once on your local machine… but you may also install it on a staging server, or a colleagues machine. Doing so through composer ensures that you’re getting the same packages and code in all places. It also makes things like changing PHP versions more structured… if you moved from PHP7 to PHP8, then different versions of libraries may be needed. Composer can deal with this for you.

In terms of dependencies, Silverstripe isn’t a single, monolithic application. It uses a whole collection of modules and packages… some are managed by Silverstripe / the open-source team, others are community projects from elsewhere (things like Swiftmailer, Symfony, GraphQL, etc.) Composer keeps track of all these inter-dependant bits of code to try and make sure you always have a compatible set of packages.

So, for example, Silverstripe 4.11 can now use GraphQL 4, and it can also run on PHP8.1. So moving from Silverstripe 4.10 to 4.11 isn’t just a case of updating the framework / cms code… it also needs the newer version of GraphQL, which, in-turn, may need newer versions of other things. Multiple packages may have releases which need updating to work with PHP 8.1 - or maybe they won’t work with it… and composer will tell you this if you try to update.

To be honest, I think that managing any modern PHP codebase / application without something like composer would be a near-impossible task.

1 Like

Thanks, understood now.