campaigningbureau / cf-repository-generator
Generates required repositories, factories and models to access a new Contentful Content Type in Laravel
Installs: 9 345
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 4
Forks: 1
Open Issues: 1
Requires
- php: ^8.1
- campaigningbureau/laravel-static-image-cache: ^10.0||@dev
- contentful/laravel: ^9.0
- davidbadura/faker-markdown-generator: ^1.1
- fakerphp/faker: ^1.23
- illuminate/support: ^9.0||^10.0||^11.0
- nesbot/carbon: ^2.72
README
Laravel 7 Contentful Repository generator.
Generates contract, contentful repository, model, factory and caching repository with fields that are defined in the Contentful model. (https://www.contentful.com/)
If one of these files does already exist, it can be kept or overwritten.
Usage
Step 1: Install Through Composer
composer require campaigningbureau/cf-repository-generator
Supported versions
Step 2: Register the Service Provider
Add the service provider to config/app.php
.
/* * Package Service Providers... */ CampaigningBureau\CfRepositoryGenerator\CfRepositoryGeneratorServiceProvider::class,
Step 3: Publish and edit the config file
$ php artisan vendor:publish --provider="CampaigningBureau\CfRepositoryGenerator\CfRepositoryGeneratorServiceProvider"
Step 4: Create repositories
php artisan make:cf-repository
This command will load all content types that are defined in the configured contentful space and provide an easy way to generate the relevant classes.
The generated files also contain fake repositories, that can be used instead of the actual contentful data (for instance, if no data is available during development).
The whole directory (FakeData
by default) can be removed, if it isn't used.
Configuration
The published config file config/cf-repository-generator.php
contains the paths for the generated files inside the app
directory.
To be conform to PSR-4 autoloading, the namespaces of the files are generated out of these paths.
These are the default paths, that will be used, if the config file isn't published, or if the config keys don't exist:
return [ 'paths' => [ 'contracts' => 'Repositories/Contracts/', 'repositories' => 'Repositories/', 'caching-repositories' => 'Repositories/Caching/', 'models' => 'Models/', 'factories' => 'Factories/', 'fake-data' => 'FakeData/', ], ];
- The
contentful_delivery_space
andcontentful_delivery_token
fields need to be set with the API Key and Space ID retrieved from Contentful. - By default they are set with the .env variables
CONTENTFUL_DELIVERY_SPACE
andCONTENTFUL_DELIVERY_TOKEN
. CONTENTFUL_ENVIRONMENT_ID
defines the Contentful environment to use (defaults tomaster
)