Download the PHP package wernerkrauss/silverstripe-rector without Composer

On this page you can find all versions of the php package wernerkrauss/silverstripe-rector. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package silverstripe-rector

Latest Stable Version Total Downloads Latest Unstable Version License PHPunit

silverstripe-rector

A developer utility for automatically upgrading deprecated code for Silverstripe CMS. With rules for upgrades for Silverstripe 6.

Table of Contents

About rector

rector is a tool for automatic code upgrades and refactorings. See rector homepage for more information.

Installation

This module is installable via composer. As Rector uses PHPstan, it's a good idea to install cambis/silverstan, too.

Note: if you need to use PHPStan v1 in your project, use v0.x of this module

Create a basic phpstan.neon file in your project root:

This will add all requirements and create a file called rector.php in your project root. You'll need to adjust it, e.g. add the code directories to upgrade and the rules to use.

A basic Rector config can look like

Silverstripe-rector comes with two types of SetLists: SilverstripeSetList for single sets of rectors (e.g. upgrading from 5.0 to 5.1 or for general Silverstripe code styles) and SilverstripeLevelSetList for combining all set lists up to a given Silverstripe CMS version, e.g. running all upgrades to Silverstripe 5.1.

See also Rector documentation for more configuration possibilities.

You can find a list of Rectors provided by this module in the documentation.

Running rector

Once it's configured, you can run Rector in the command line using the following command:

The option --dry-run prints the code changes; if you're happy with the changes, you can remove that option and rector will actually change the files.

Useful options:

See vendor/bin/rector --help for more options.

Docs

Changelog Analysis Process

To keep up with new Silverstripe releases, we use an AI-assisted workflow:

  1. Sync Changelogs: Download both HTML (for reference) and Markdown (for analysis) files.

  2. Generate AI Prompt: This script extracts the most relevant sections (API changes, renames, deprecations) from the Markdown file.

  3. Process with AI: Copy the generated prompt into an AI (like ChatGPT or Claude).
  4. Update TODOs: Copy the AI's response into docs/todos/ss-X.Y.Z.md.

Standard TODO Format:

IDE Support (PHPStorm)

Since Rector uses PHPStan, which is often distributed as a PHAR file, your IDE might not find classes like PHPStan\Type\ObjectType.

To fix this in PHPStorm:

  1. Include PHPStan classes:

    • Go to Settings > Languages & Frameworks > PHP.
    • In the Include Path tab, click +.
    • Add the directory vendor/phpstan/phpstan. PHPStorm will automatically find and index the phpstan.phar inside it.
    • Alternatively: Install the phpdoc-parser which provides many type definitions:
  2. Exclude fixtures: To avoid "Duplicate class" errors from test fixtures, exclude the tests/**/Fixture directories from your project:
    • Right-click on the Fixture folder in the project tree.
    • Select Mark Directory as > Excluded.

Other useful modules you should know about

Developing

This module is preconfigured to run with ddev and has some useful custom scripts for developing:

PHP Code Sniffer

Code Sniffer is a tool to detect violations of a defined coding standard (mostly PSR-12)

See phpcs.xml.dist for the ruleset used.

Detect violations

or

Fix most violations automatically

or the shortcut

PHPStan

PHP Static Code Analyzer is a tool to detect bugs in your code without running it. It can be used to detect type errors, dead code, and other issues.

Don't be too much annoyed by the errors. Rector can fix a lot of them automatically.

A level of 4 should be doable.

or

Rector

Rector is a tool to refactor code automatically. It can be used to upgrade code to a newer version of Silverstripe or PHP.

See rector.php for rules and configuration.

or

Jack

Jack is a tool to check for outdated dependencies, especially major version updates that might require manual intervention.

or specifically to check if any major updates are available (which is used in CI):

Everything in one command

There is also a CI tool to run everything in one command (PHPUnit, Linting, Rector, PHPStan and Jack)

TODO

SS3 to SS4 upgrades (before running official upgrader tool)

SS4 upgrades

General

Misc

Code Quality

Thanks to

xini for updating this module to Rector V2 and adding a lot of Silverstripe 6 rules.

Need Help?

If you need some help with your Silverstripe project, feel free to contact me ✉️.

See you at next StripeCon 👋


All versions of silverstripe-rector with dependencies

PHP Build Version
Package Version
Requires php Version ^7.4 | ^8
rector/rector Version ^2.3.4
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package wernerkrauss/silverstripe-rector contains the following files

Loading the files please wait ...