byteincoffee/doctrine-extensions
Laravel package integrating Doctrine Extensions with Eloquent models, adding behaviors like timestampable, sluggable, soft delete, and more. Provides easy configuration, listeners/subscribers, and seamless use of Doctrine-style extensions in Laravel apps.
Uploadable comes with default keymaker.
<?php
use FSi\DoctrineExtensions\Uploadable\Keymaker\Entity;
$keymaker = new Entity();
You can use it as default keymaker (as described in uploadable documentation), or explicitely per field. Either way you can always set pattern for keymaker:
<?php
use Doctrine\ORM\Mapping as ORM;
use FSi\DoctrineExtensions\Uploadable\Mapping\Annotation\Uploadable;
use FSi\DoctrineExtensions\Uploadable\Keymaker\Entity;
class User
{
// (...)
/**
* [@ORM](https://github.com/ORM)\Column()
* [@Uploadable](https://github.com/Uploadable)(targetField="someField", keymaker=[@Entity](https://github.com/Entity), keyPattern="/{fqcn}/{property}/{original_name}")
*/
protected $field;
/**
* [@ORM](https://github.com/ORM)\Column()
* [@Uploadable](https://github.com/Uploadable)(targetField="someField2", keyPattern="/some/directory/{fqcn}/{id}/{original_name}")
*/
protected $field2;
// (...)
}
Specified keyPattern will be passed to keymaker during key generation, so you can control that process.
Some variables will be replaced:
Acme\DemoBundle\Bundle\Entity\User will become AcmeDemoBundleBundleEntityUser.field and field2.Others variables as well as consts (numbers, slashes etc) will be ignored.
Default keyPattern for FSi\DoctrineExtensions\Uploadable\Keymaker\Entity is /{fqcn}/{property}/{id}/{original_name}.
Heads up! With keyPattern it's easy to make situation when uploadable extension can't generate unique key, so please be carefull with this option.
How can I help you explore Laravel packages today?