czim / aalberts-pxlcms
Laravel adapter for the Aalberts PXL CMS
Installs: 276
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/czim/aalberts-pxlcms
Requires
- php: >=5.4.0
- czim/laravel-dataobject: ^1.0
- czim/laravel-filter: ^1.0
- czim/laravel-listify: ^0.9
- czim/laravel-pxlcms: ^1.0
- illuminate/database: 5.*
- illuminate/support: 5.*
- laracasts/presenter: ^0.2
- myclabs/php-enum: ^1.4
Requires (Dev)
- orchestra/testbench: ~3.0
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
README
Nothing to see here for now. See the PXLCMS adapter package for more information.
Install
Via Composer
$ composer require czim/aalberts-pxlcms
Add this line of code to the providers array located in your config/app.php file:
Aalberts\AalbertsCmsServiceProvider::class,
And add the facade aliases to the same file:
'Aalberts' => Aalberts\Facades\AalbertsFacade::class, 'Translate' => Aalberts\Facades\TranslateFacade::class,
Publish the configuration:
$ php artisan vendor:publish
Set up event listening for missing translation phrases. Add the following pair to your EventServiceProvider class:
\Aalberts\Events\DetectedMissingTranslationPhrase::class => [ \Aalberts\Listeners\MissingTranslationPhraseListener::class ], \Aalberts\Events\SearchPerformed::class => [ \Aalberts\Listeners\SearchListener::class ],
Cache
This package requires that a cache driver be used that supports tagging (such as Redis).
Configuration
.env
Set the following keys for your application in the .env file like so (or adjust confing/aalberts.php directly).
AALBERTS_ORGANIZATION=2 AALBERTS_ORGANIZATION_KEY=VSH
Scheduling
Translations, CMS content and Compano content are all cached for common lookups. All translations should be loaded in cache at all times; other content may be cached on demand.
A typical schedule for this in your Console/Kernel.php is:
        $schedule->command('aalberts:cache:translations')->everyFiveMinutes();
        $schedule->command('aalberts:cache:cms:check')->everyTenMinutes();
        $schedule->command('aalberts:cache:cmp:check')->dailyAt('06:00');
Translations
Labels
It is much more efficient to keep all translations cached, to prevent lookups for individual atrans() calls.
Translations are not automatically cached, at least not in a batch.
To make sure the cache stays up to date, schedule the artisan:cache:translations command to run periodically.
It is recommended to keep the interval at least 5 minutes or to prevent overlap.
The command will check whether a cache is required by comparing the latest modifiedts date for all the organization's translations.
If no updates since the last cache time are detected, the cache will not be renewed.
If no cache has been set at all, this command will always fill the cache.
Local translations
Add aalberts translations files for all locales that your application uses and set content like the following:
<?php return [ 'months' => [ '01' => 'jan', '02' => 'feb', '03' => 'mrt', '04' => 'apr', '05' => 'mei', '06' => 'jun', '07' => 'jul', '08' => 'aug', '09' => 'sep', '10' => 'okt', '11' => 'nov', '12' => 'dec', ], ];
This will be used by the StandardDateFormatter.
Usage
Run the generator to make the models and repositories:
$ php artisan aalberts:generate
This command works exactly like the czim/laravel-pxlcms package pxlcms:generate command.
Presenters
Some models have presenters from the Laracasts presenter package.
ToDo: add support for this to the package
- How to override and/or set your own presenter classes.
- Provide default presenters
- Set up date formatting (with 'special' standard class)
Translation
Note that the Translator expects the generated Phrase and Translation classes to be in App\Models\Aalberts.
Anywhere else will break the built-in Translator class.
Filters
Adding a Filter
Things to update:
- Add the filter slugs & validation rules to the Aalberts\Filters\ProductFilterData(don't forget the$defaultskey!)
- Add the filter slugs to the Aalberts\Filters\ProductFilterproperties
- Add an Aalberts\Filters\ParameterCounters\..Counter class
- Add an Aalberts\Filters\ParameterFilters\..Parameter class
- If it doesn't exist yet, add a repository for the Compano filter target model (such as for cmp_applications)
- Update the Aalberts\Factories\FilterStrategyFactory: set the repository for the slug
Credits
License
The MIT License (MIT). Please see License File for more information.