+Contribute
+==========
+
+You may buy me a Beer, a Tea or help with Server fees with a paypal donation to
+the address <paypal@rapsys.eu>.
+
+Don't forget to show your love for this project, feel free to report bugs to
+the author, issues which are security relevant should be disclosed privately
+first.
+
+Patches are welcomed and grant credit when requested.
+
Installation
============
```json
{
- ...,
- "repositories": [
- {
- "type": "package",
- "package": {
- "name": "rapsys/packbundle",
- "version": "dev-master",
- "source": {
- "type": "git",
- "url": "https://git.rapsys.eu/packbundle",
- "reference": "master"
- },
- "autoload": {
- "psr-4": {
- "Rapsys\\PackBundle\\": ""
- }
- },
- "require": {
- "symfony/asset": "^4.4",
- "symfony/flex": "^1.5",
- "symfony/framework-bundle": "^4.4",
- "symfony/process": "^4.4",
- "symfony/twig-bundle": "^4.4",
- "twig/extensions": "^1.5"
- }
- }
- }
- ],
- ...
+ ...,
+ "repositories": [
+ {
+ "type": "package",
+ "package": {
+ "name": "rapsys/packbundle",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://git.rapsys.eu/packbundle",
+ "reference": "master"
+ },
+ "autoload": {
+ "psr-4": {
+ "Rapsys\\PackBundle\\": ""
+ }
+ },
+ "require": {
+ "symfony/asset": "^4.0|^5.0|^6.0|^7.0",
+ "symfony/flex": "^1.0|^2.0",
+ "symfony/framework-bundle": "^4.0|^5.0|^6.0|^7.0",
+ "symfony/process": "^4.0|^5.0|^6.0|^7.0",
+ "symfony/twig-bundle": "^4.0|^5.0|^6.0|^7.0"
+ }
+ }
+ }
+ ],
+ ...
}
```
// ...
class AppKernel extends Kernel
{
- public function registerBundles()
- {
- $bundles = array(
- // ...
- new Rapsys\PackBundle\RapsysPackBundle(),
- );
+ public function registerBundles()
+ {
+ $bundles = array(
+ // ...
+ new Rapsys\PackBundle\RapsysPackBundle(),
+ );
- // ...
- }
+ // ...
+ }
- // ...
+ // ...
}
```
#Register twig pack extension
rapsys_pack.pack_extension:
class: 'Rapsys\PackBundle\Extension\PackExtension'
- arguments: [ '@file_locator', '@service_container', '@rapsys_pack.path_package', '@rapsys_pack.slugger_util' ]
+ arguments: [ '@service_container', '@rapsys_pack.intl_util', '@file_locator', '@rapsys_pack.path_package', '@rapsys_pack.slugger_util' ]
tags: [ 'twig.extension' ]
+ #Register intl util service
+ rapsys_pack.intl_util:
+ class: 'Rapsys\PackBundle\Util\IntlUtil'
+ public: true
+ #Register facebook event subscriber
+ Rapsys\PackBundle\Subscriber\FacebookSubscriber:
+ arguments: [ '@router', [] ]
+ tags: [ 'kernel.event_subscriber' ]
+ #Register intl util class alias
+ Rapsys\PackBundle\Util\IntlUtil:
+ alias: 'rapsys_pack.intl_util'
+ #Register facebook util service
+ rapsys_pack.facebook_util:
+ class: 'Rapsys\PackBundle\Util\FacebookUtil'
+ arguments: [ '@router', '%kernel.project_dir%/var/cache', '%rapsys_pack.path%' ]
+ public: true
+ #Register facebook util class alias
+ Rapsys\PackBundle\Util\FacebookUtil:
+ alias: 'rapsys_pack.facebook_util'
+ #Register image util service
+ rapsys_pack.image_util:
+ class: 'Rapsys\PackBundle\Util\ImageUtil'
+ arguments: [ '@router', '@rapsys_pack.slugger_util', '%kernel.project_dir%/var/cache', '%rapsys_pack.path%' ]
+ public: true
+ #Register image util class alias
+ Rapsys\PackBundle\Util\ImageUtil:
+ alias: 'rapsys_pack.image_util'
+ #Register map util service
+ rapsys_pack.map_util:
+ class: 'Rapsys\PackBundle\Util\MapUtil'
+ arguments: [ '@router', '@rapsys_pack.slugger_util' ]
+ public: true
+ #Register map util class alias
+ Rapsys\PackBundle\Util\MapUtil:
+ alias: 'rapsys_pack.map_util'
#Register slugger util service
rapsys_pack.slugger_util:
class: 'Rapsys\PackBundle\Util\SluggerUtil'
#Register slugger util class alias
Rapsys\PackBundle\Util\SluggerUtil:
alias: 'rapsys_pack.slugger_util'
+ #Register image controller
+ Rapsys\PackBundle\Controller\ImageController:
+ arguments: [ '@service_container', '@rapsys_pack.image_util', '@rapsys_pack.slugger_util', '%kernel.project_dir%/var/cache', '%rapsys_pack.path%' ]
+ tags: [ 'controller.service_arguments' ]
+ #Register map controller
+ Rapsys\PackBundle\Controller\MapController:
+ arguments: [ '@service_container', '@rapsys_pack.map_util', '@rapsys_pack.slugger_util', '%kernel.project_dir%/var/cache', '%rapsys_pack.path%' ]
+ tags: [ 'controller.service_arguments' ]
+ Rapsys\PackBundle\Form\CaptchaType:
+ arguments: [ '@rapsys_pack.image_util', '@rapsys_pack.slugger_util', '@translator' ]
+ tags: [ 'form.type' ]
+```
+
+Setup configuration file `config/packages/myproject.yaml` with the following
+content available in `Resources/config/packages/rapsys_pack.yaml`:
+
+```yaml
+#Services configuration
+services:
+ #Register facebook event subscriber
+ Rapsys\PackBundle\Subscriber\FacebookSubscriber:
+ arguments: [ '@router', [ 'en', 'en_gb', 'en_us', 'fr', 'fr_fr' ] ]
+ tags: [ 'kernel.event_subscriber' ]
+ #Register facebook util service
+ rapsys_blog.facebook_util:
+ class: 'Rapsys\PackBundle\Util\FacebookUtil'
+ arguments: [ '@router', '%kernel.project_dir%/var/cache', '%rapsys_pack.path%', 'facebook', '%kernel.project_dir%/public/png/facebook.png' ]
+ public: true
```
Open a command console, enter your project directory and execute the following
command to see default bundle configuration:
```console
-$ php bin/console config:dump-reference RapsysPackBundle
+$ bin/console config:dump-reference RapsysPackBundle
```
Open a command console, enter your project directory and execute the following
command to see current bundle configuration:
```console
-$ php bin/console debug:config RapsysPackBundle
+$ bin/console debug:config RapsysPackBundle
```
### Step 4: Use the twig extension in your Template
//This class will be defined in the parameter rapsys_pack.filters.(css|img|js).[x].class string
class MyPackFilter implements FilterInterface {
- //The constructor arguments ... will be replaced defined in the parameter rapsys_pack.filters.(css|img|js).[x].args array
+ //The constructor arguments ... will be replaced with values defined in the parameter rapsys_pack.filters.(css|img|js).[x].args array
public function __construct(string $fileName, int $line, string $bin = 'mypack', ...) {
//Set fileName
$this->fileName = $fileName;