Download the PHP package splitstack/readonly-models without Composer

On this page you can find all versions of the php package splitstack/readonly-models. 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 readonly-models

readonly-models

Block persistence on Eloquent models. Drop the PreventsWrites trait onto a model and every write path (save, update, delete, forceDelete) throws a ReadOnlyException instead of touching the database.

Useful for value objects, in-memory entities, database views, and any model that should never be written back.

Installation

Requires PHP 8.2+ and illuminate/database 10 through 13. It only needs the database component, not the full framework, so it works inside a Laravel app or standalone with the Eloquent Capsule.

Usage

Because create(), saveQuietly() and push() all route through save(), and the static destroy() routes through delete(), those four overrides cover the whole write surface.

Catching the exception

ReadOnlyException extends BadMethodCallException (itself a LogicException), so you can catch it at whichever level fits:

Customising the behaviour

Keep one write method working. A method declared directly on the class always wins over the trait's version, so you can carve out an exception without any trait conflict. For example, route update() through another model:

Change the exception or message. Override the protected denyWrite() hook. It receives the blocked method name and returns the exception to throw:

MyReadOnlyException just needs to extend ReadOnlyException.

License

MIT. See LICENSE.


All versions of readonly-models with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
illuminate/database Version ^10.0|^11.0|^12.0|^13.0
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 splitstack/readonly-models contains the following files

Loading the files please wait ...