Download the PHP package lorisleiva/lody without Composer
On this page you can find all versions of the php package lorisleiva/lody. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download lorisleiva/lody
More information about lorisleiva/lody
Files in lorisleiva/lody
Package lody
Short Description Load files and classes as lazy collections in Laravel.
License MIT
Homepage https://github.com/lorisleiva/lody
Informations about the package lody
🗄 Lody
Load files and classes as lazy collections in Laravel.
Installation
Usage
Lody enables you to fetch all existing PHP classes of a provided path (or array of paths) that are relative to your application's base path. It returns a custom LazyCollection
with helpful methods so that you can filter classes even further based on your own requirement. For example, the code below will fetch all non-abstract instances of Node
within the given path recursively and register each of them.
If you want all files instead of existing PHP classes, you may use Lody::files
instead.
Configuration
Resolving paths
When providing paths to the Lody::files
or Lody::classes
methods, Lody will automatically assume these paths are within the root of your application unless they start with a slash in which case they are left untouched.
You may configure this logic by calling the Lody::resolvePathUsing
method on one of your service providers. The example below provides the default logic.
Resolving classnames
When using the Lody::classes
method, Lody will transform your filenames into classnames by following PSR-4 conventions. For example, if your filename is app/Models/User.php
and you have mapped the App
namespace to the app
directory in your composer.json
file, the it will be resolved to App\Models\User
.
By default, the classname resolution takes into account every single PSR-4 mapping as defined in your vendor/composer/autoload_psr4.php
file. This means, it will even resolves classes that live in your vendor directory properly.
If your PSR-4 autoload file is located elsewhere, you may configure it by calling the Lody::setAutoloadPath
method on one of your service providers.
Alternatively, you may override this logic entirely by calling the Lody::resolveClassnameUsing
method. The example below provides a useful example for Laravel applications.
Using Lody without Laravel
Lody works out of the box with Laravel because we can use the base_path
method to access the root of your project.
However, if you wish to use Lody without Laravel, you may simply provide the base path of your application explicitely using the Lody::setBasePath
method.