Pimcore Bundle that enbable pimcore to expose webook for communication to third parties

Overview

WebHookBundle Plugin

Compile and Tests CodeFactor

This extention provide an easy way to send dataobjects to an external sites via json, whenever a pimcore event occurs on a specified class. This bundle installs the webHook class through which it is possible to define, from the UI, which dataObjects to listen for sending data to an external website, whenever a pimcore event occurs on the specified dataobject.

How to Install WebHookBundle

1. download and install the bundle from composer

For installig WebHookBundle, the first step is to open your terminal and type:

docker-compose exec php bash
composer require sintra/pimcore-webhooks:dev-main

After you have installed the Toolbox Bundle via composer, open pimcore backend and go to Tools => Extension:

  • Click the green + Button in Enable / Disable row
  • Click the green + Button in Install/Uninstall row

2. Configure the bundle

Now that the bundle is installed you can start creating your webhooks!. Follows the next stesp.

  1. create a folder called Webhooks. Although this is not mandatory and you can name it as you want.
  2. create a webhook object in it:
  • In setting panel you can specify the name of the classes to monitor, the events to listen to, and the URL of the site to send the json object
  • In the security panel, you can set an api-key to provie to the specified URS, an a pair of public/private key to generate a signature

The following video shows how this can be done in seconds. Now you are ready to use the Webhok bundle!

Webook configuration

Availbale options

You can specify:

  • The class to monitor
  • The URL to send data to
  • The event to listen

The aviable event are:

  • preAdd
  • postAdd
  • postAddFailure
  • preUpdate
  • postUpdate
  • postUpdateFailure
  • deleteInfo
  • preDelete
  • postDelete
  • postDeleteFailure
  • postCopy
  • postCsvItemExport

Once the event occurs, the json represtantion of you data is sent to the specified url. In the header it is specified which event was launched.

Each event will trigger a request like this:

  • headers
    • x-listen-event: contain the name of the event launched
    • x-apikey: contain a random generated key for autentication porpouse
    • x-signature: contain the data signature created with OPENSSL_ALGO_SHA1; public key is store in website settings
  • body contains two main parts:
    • dataObject: json representation of your dataObject
    • argumentrs: exception code and message throws if a failure occurs

Security settings

To ensure the authenticity and security of the information transmitted, in the header there are a randomly generated api-key, and a signature generated through a pair of keys (public / private), stored in the Pimcore website setting. These are created automatically when the bundle is installed, but you can use your own.

To run the tests you don't need to create any webhooks or classes, these will be created automatically, you just have to initialize the testURL attribute with a valid url.

Comments
  • Wrong content-type header during sending json request

    Wrong content-type header during sending json request

    WebHookListener :: handleChange sets wrong content-type header when sending json request. It is set application/x-www-form-urlencoded instead of application/json due to incorrect use of the HttpClient::request method.

    It is: $ response = $ client-> request ($ method, $ url, ['headers' => $ headers, 'body' => $ jsonContent]);

    Should be: $ response = $ client-> request ($ method, $ url, ['headers' => $ headers, 'json' => $ arrayData]);

    opened by marcinkierus 0
  • I can't install the plugin - SQLSTATE[42S02]: Base table or view not found: 1932 Table 'pimcore.object_query_wb_webhook' doesn't exist in engine

    I can't install the plugin - SQLSTATE[42S02]: Base table or view not found: 1932 Table 'pimcore.object_query_wb_webhook' doesn't exist in engine

    Hello, I can enable the plugin but not to install it, when I try to install it I get the following error:

    Timestamp: Tue Dec 07 2021 12:40:26 GMT+0100 (Ora standard dell’Europa centrale) Status: 400 | Bad Request URL: /admin/extensionmanager/admin/install Method: POST Message: An exception occurred while executing 'ALTER TABLE object_query_WB_WebHook ALTER COLUMN oo_className SET DEFAULT 'WebHook';':

    SQLSTATE[42S02]: Base table or view not found: 1932 Table 'pimcore.object_query_wb_webhook' doesn't exist in engine

    Thank you

    opened by stefanos87 2
  • Class MigrationInstaller is not provided

    Class MigrationInstaller is not provided

    In class WebHookBundleInstaller your extendig a non existing MigrationInstaller class. Please provide this class or specify the correct dependencies in order to be able to use your bundle.

    opened by HeHof 1
  • Class

    Class "Pimcore\Extension\Bundle\Installer\MigrationInstaller" not found while loading "WebHookBundle\Installer\WebHookBundleInstaller

    Hello, I've tried to install your extension by documentation.

    composer require sintra/pimcore-webhooks:dev-main
    

    part was successful, but installation from the admin panel ("Bundles & Bricks") gives me an error:

    Please don't forget to clear the cache and reload pimcore after your modifications!
    
    4
    BE RESPECTFUL AND HONOR OUR WORK FOR FREE & OPEN SOURCE SOFTWARE BY NOT REMOVING OUR LOGO. WE OFFER YOU THE POSSIBILITY TO ADDITIONALLY ADD YOUR OWN LOGO IN PIMCORE'S SYSTEM SETTINGS. THANK YOU!
    
    Please don't forget to clear the cache and reload pimcore after your modifications!
    
    Failed to run assets:install command. Please run command manually.
    
    The command "'/usr/local/bin/php' '/var/www/html/bin/console' 'assets:install' '--symlink' '--relative' '/var/www/html/public'" failed.
    
    Exit Code: 255(Unknown error)
    
    Working directory: /var/www/html
    
    Output:
    ================
    ReflectionException {#7671
      #message: "Class "Pimcore\Extension\Bundle\Installer\MigrationInstaller" not found while loading "WebHookBundle\Installer\WebHookBundleInstaller"."
      #code: 0
      #file: "./vendor/symfony/symfony/src/Symfony/Component/Config/Resource/ClassExistenceResource.php"
      #line: 74
      trace: {
        ./vendor/symfony/symfony/src/Symfony/Component/Config/Resource/ClassExistenceResource.php:74 { ?}
        ./vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ContainerBuilder.php:348 { ?}
        ./vendor/pimcore/pimcore/bundles/CoreBundle/DependencyInjection/Compiler/ServiceControllersPass.php:60 { ?}
        ./vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/Compiler.php:91 { ?}
        ./vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ContainerBuilder.php:736 { ?}
        ./vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:541 { ?}
        ./vendor/pimcore/pimcore/lib/Kernel.php:223 { ?}
        ./vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:780 { ?}
        ./vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:121 { ?}
        ./vendor/pimcore/pimcore/lib/Kernel.php:202 { ?}
        ./vendor/pimcore/pimcore/lib/Bootstrap.php:256 { ?}
        ./vendor/pimcore/pimcore/lib/Bootstrap.php:60 { ?}
        ./bin/console:44 {
          ? /** @var \Pimcore\Kernel $kernel */
          ? $kernel = \Pimcore\Bootstrap::startupCli();
          ? $application = new \Pimcore\Console\Application($kernel);
        }
      }
    }
    
    Error Output:
    ================
    

    pimcore/demo:10.0.6

    opened by Hubbitus 5
  • Notifiche degli errori webhook

    Notifiche degli errori webhook

    In caso si verifichi un errore Webhook non viene segnalato nell'interfaccia il problema, ma potrebbe essere di interesse per l'utenze amministratore saperlo (magari tramite notifiche pimcore)

    opened by andrea-sdl 0
  • Serializing delle immagini molto pesante

    Serializing delle immagini molto pesante

    Nel caso ci sia un'immagine nell'oggetto la serializzazione dell'immagine si porta dietro tantissimi dati probabilmente superflui.

    Valutiamo se semplificarlo e/o disabilitare la serializzazione profonda delle immagini tramite un flag nel webhook.

    Allego un esempio

    {"dataObject":{"general":{"o_classId":"STKIT_BLOG_ARTICLE","o_className":"Article","o_published":true,"o_id":7,"o_parentId":2,"o_type":"object","o_key":"Demo","o_creationDate":1620119550,"o_userOwner":2},"data":{"Slug":"slug1","Metatitle":"da","Metadescription":"da","Showinlist":1,"Publishedfrom":null,"Publishedto":null,"Title":null,"Subtitle":null,"Abstract":null,"Body":null,"Image":{"type":"image","id":5,"parentId":2,"parent":null,"filename":"florence.jpg","path":"\/_default_upload_bucket\/","mimetype":"image\/jpeg","creationDate":1620119582,"modificationDate":1620119582,"stream":null,"userOwner":2,"userModification":2,"properties":null,"versions":null,"metadata":[],"locked":null,"customSettings":{"imageDimensionsCalculated":true,"imageWidth":5676,"imageHeight":3193,"embeddedMetaData":{"FileSize":"6.1 MB","FileModifyDate":"2021:05:04 09:13:01 00:00","FileAccessDate":"2021:05:04 09:13:01 00:00","FileInodeChangeDate":"2021:05:04 09:13:01 00:00","FilePermissions":"rw-rw-r--","FileType":"JPEG","FileTypeExtension":"jpg","MIMEType":"image\/jpeg","ExifByteOrder":"Little-endian (Intel, II)","Make":"NIKON CORPORATION","Model":"NIKON D5200","Orientation":"Horizontal (normal)","XResolution":240,"YResolution":240,"ResolutionUnit":"inches","Software":"Adobe Photoshop Lightroom 6.0 (Windows)","ModifyDate":"2015:07:05 14:28:03","Artist":"Ma\u00eblick Claes","Copyright":"This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License. To view a copy of this \\ license, visit http:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/ or send a \\ letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.","ExposureTime":1.6,"FNumber":8,"ExposureProgram":"Aperture-priority AE","ISO":100,"SensitivityType":"Recommended Exposure Index","ExifVersion":"0230","DateTimeOriginal":"2015:05:13 21:20:05","CreateDate":"2015:05:13 21:20:05","ShutterSpeedValue":1.6,"ApertureValue":8,"ExposureCompensation":-3,"MaxApertureValue":5.7,"MeteringMode":"Multi-segment","LightSource":"Unknown","Flash":"No Flash","FocalLength":"105.0 mm","SubSecTimeOriginal":3,"SubSecTimeDigitized":3,"FocalPlaneXResolution":2558.641205,"FocalPlaneYResolution":2558.641205,"FocalPlaneResolutionUnit":"cm","SensingMethod":"One-chip color area","FileSource":"Digital Camera","SceneType":"Directly photographed","CFAPattern":"[Red,Green][Green,Blue]","CustomRendered":"Normal","ExposureMode":"Auto","WhiteBalance":"Auto","DigitalZoomRatio":1,"FocalLengthIn35mmFormat":"105 mm","SceneCaptureType":"Standard","GainControl":"None","Contrast":"Normal","Saturation":"Normal","Sharpness":"Normal","SubjectDistanceRange":"Unknown","SerialNumber":4512318,"LensInfo":"18-105mm f\/3.5-5.6","LensModel":"18.0-105.0 mm f\/3.5-5.6","Compression":"JPEG (old-style)","ThumbnailOffset":1384,"ThumbnailLength":9311,"XMPToolkit":"Adobe XMP Core 5.6-c011 79.156380, 2014\/05\/21-23:38:37 ","License":"http:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/","Format":"image\/jpeg","CreatorTool":"Adobe Photoshop Lightroom 6.0 (Windows)","Label":"Blue","MetadataDate":"2015:07:05 14:28:05 02:00","Lens":"18.0-105.0 mm f\/3.5-5.6","ImageNumber":43517,"ApproximateFocusDistance":4294967295,"IsMergedHDR":true,"DocumentID":"xmp.did:1295ef11-b771-2248-8754-365f8bdb80ad","OriginalDocumentID":"B686FCA25B761E394C2680564F39741D","InstanceID":"xmp.iid:e57957c8-960e-4246-82c7-afb8b33b4e05","Version":9,"ProcessVersion":6.7,"AutoWhiteVersion":134348800,"ColorTemperature":3850,"Tint":" 3","LuminanceSmoothing":45,"ColorNoiseReduction":49,"VignetteAmount":0,"ShadowTint":0,"RedHue":0,"RedSaturation":0,"GreenHue":0,"GreenSaturation":0,"BlueHue":0,"BlueSaturation":0,"Vibrance":" 12","HueAdjustmentRed":0,"HueAdjustmentOrange":0,"HueAdjustmentYellow":0,"HueAdjustmentGreen":0,"HueAdjustmentAqua":0,"HueAdjustmentBlue":0,"HueAdjustmentPurple":0,"HueAdjustmentMagenta":0,"SaturationAdjustmentRed":0,"SaturationAdjustmentOrange":0,"SaturationAdjustmentYellow":0,"SaturationAdjustmentGreen":0,"SaturationAdjustmentAqua":0,"SaturationAdjustmentBlue":0,"SaturationAdjustmentPurple":0,"SaturationAdjustmentMagenta":0,"LuminanceAdjustmentRed":0,"LuminanceAdjustmentOrange":0,"LuminanceAdjustmentYellow":0,"LuminanceAdjustmentGreen":0,"LuminanceAdjustmentAqua":0,"LuminanceAdjustmentBlue":0,"LuminanceAdjustmentPurple":0,"LuminanceAdjustmentMagenta":0,"SplitToningShadowHue":0,"SplitToningShadowSaturation":0,"SplitToningHighlightHue":0,"SplitToningHighlightSaturation":0,"SplitToningBalance":0,"ParametricShadows":0,"ParametricDarks":0,"ParametricLights":0,"ParametricHighlights":0,"ParametricShadowSplit":25,"ParametricMidtoneSplit":50,"ParametricHighlightSplit":75,"SharpenRadius":" 1.8","SharpenDetail":52,"SharpenEdgeMasking":0,"PostCropVignetteAmount":-21,"PostCropVignetteMidpoint":50,"PostCropVignetteFeather":50,"PostCropVignetteRoundness":0,"PostCropVignetteStyle":1,"PostCropVignetteHighlightContrast":0,"GrainAmount":0,"LuminanceNoiseReductionDetail":50,"ColorNoiseReductionDetail":50,"LuminanceNoiseReductionContrast":0,"ColorNoiseReductionSmoothness":50,"LensProfileEnable":1,"LensManualDistortionAmount":0,"PerspectiveVertical":0,"PerspectiveHorizontal":0,"PerspectiveRotate":0,"PerspectiveScale":100,"PerspectiveAspect":0,"PerspectiveUpright":0,"AutoLateralCA":1,"Exposure2012":" 0.71","Contrast2012":0,"Highlights2012":-69,"Shadows2012":" 60","Whites2012":" 29","Blacks2012":-12,"Clarity2012":" 26","DefringePurpleAmount":10,"DefringePurpleHueLo":30,"DefringePurpleHueHi":70,"DefringeGreenAmount":0,"DefringeGreenHueLo":40,"DefringeGreenHueHi":60,"ConvertToGrayscale":false,"ToneCurveName":"Linear","ToneCurveName2012":"Medium Contrast","CameraProfile":"Adobe Standard","LensProfileSetup":"LensDefaults","LensProfileName":"Adobe (Nikon AF-S DX NIKKOR 18-105mm f\/3.5-5.6G ED VR)","LensProfileFilename":"NIKON D90 (Nikon AF-S DX NIKKOR 18-105mm f3.5-5.6G ED VR) - RAW.lcp","LensProfileDigest":"8847EED06ACB4C4D69619E80785F6CDC","LensProfileDistortionScale":100,"LensProfileChromaticAberrationScale":100,"LensProfileVignettingScale":100,"HasSettings":true,"CropTop":0.041625,"CropLeft":0.051839,"CropBottom":0.83473,"CropRight":1,"CropAngle":-0.211813,"CropConstrainToWarp":1,"HasCrop":true,"AlreadyApplied":true,"RawFileName":"20150513_212005_00-HDR.jpg","Creator":"Ma\u00eblick Claes","Rights":"This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) License. To view a copy of this \\ license, visit http:\/\/creativecommons.org\/licenses\/by-sa\/4.0\/ or send a \\ letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.","HistoryAction":"saved | derived | saved | derived | saved | saved","HistoryInstanceID":"xmp.iid:516bcce3-e6a8-974d-8f5d-8e66ae5debff | xmp.iid:8be55542-71b8-e646-af6f-af66ce908337 | xmp.iid:1295ef11-b771-2248-8754-365f8bdb80ad | xmp.iid:e57957c8-960e-4246-82c7-afb8b33b4e05","HistoryWhen":"2015:05:27 08:30:40 02:00 | 2015:07:05 12:20:07 02:00 | 2015:07:05 14:28:03 02:00 | 2015:07:05 14:28:05 02:00","HistorySoftwareAgent":"Adobe Photoshop Lightroom 6.0 (Windows) | Adobe Photoshop Lightroom 6.0 (Windows) | Adobe Photoshop Lightroom 6.0 (Windows) | Adobe Photoshop Lightroom 6.0 (Windows)","HistoryChanged":"\/metadata | \/ | \/ | \/metadata","HistoryParameters":"saved to new location | converted from image\/dng to image\/jpeg, saved to new location","DerivedFromInstanceID":"xmp.iid:8be55542-71b8-e646-af6f-af66ce908337","DerivedFromDocumentID":"xmp.did:8be55542-71b8-e646-af6f-af66ce908337","DerivedFromOriginalDocumentID":"B686FCA25B761E394C2680564F39741D","ToneCurve":"0, 0 | 255, 255","ToneCurveRed":"0, 0 | 255, 255","ToneCurveGreen":"0, 0 | 255, 255","ToneCurveBlue":"0, 0 | 255, 255","ToneCurvePV2012":"0, 0 | 32, 22 | 64, 56 | 128, 128 | 192, 196 | 255, 255","ToneCurvePV2012Red":"0, 0 | 255, 255","ToneCurvePV2012Green":"0, 0 | 255, 255","ToneCurvePV2012Blue":"0, 0 | 255, 255","DisplayedUnitsX":"inches","DisplayedUnitsY":"inches","CurrentIPTCDigest":"efd5376aca1ab90109e6f04235538d8d","CodedCharacterSet":"UTF8","ApplicationRecordVersion":4,"DateCreated":"2015:05:13","TimeCreated":"21:20:05","DigitalCreationDate":"2015:05:13","DigitalCreationTime":"21:20:05","By-line":"Ma\u00eblick Claes","CopyrightNotice":"This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) Licen","PhotoshopThumbnail":"(Binary data 9311 bytes, use -b option to extract)","IPTCDigest":"efd5376aca1ab90109e6f04235538d8d","ProfileCMMType":"Linotronic","ProfileVersion":"2.1.0","ProfileClass":"Display Device Profile","ColorSpaceData":"RGB ","ProfileConnectionSpace":"XYZ ","ProfileDateTime":"1998:02:09 06:49:00","ProfileFileSignature":"acsp","PrimaryPlatform":"Microsoft Corporation","CMMFlags":"Not Embedded, Independent","DeviceManufacturer":"Hewlett-Packard","DeviceModel":"sRGB","DeviceAttributes":"Reflective, Glossy, Positive, Color","RenderingIntent":"Perceptual","ConnectionSpaceIlluminant":"0.9642 1 0.82491","ProfileCreator":"Hewlett-Packard","ProfileID":0,"ProfileCopyright":"Copyright (c) 1998 Hewlett-Packard Company","ProfileDescription":"sRGB IEC61966-2.1","MediaWhitePoint":"0.95045 1 1.08905","MediaBlackPoint":"0 0 0","RedMatrixColumn":"0.43607 0.22249 0.01392","GreenMatrixColumn":"0.38515 0.71687 0.09708","BlueMatrixColumn":"0.14307 0.06061 0.7141","DeviceMfgDesc":"IEC http:\/\/www.iec.ch","DeviceModelDesc":"IEC 61966-2.1 Default RGB colour space - sRGB","ViewingCondDesc":"Reference Viewing Condition in IEC61966-2.1","ViewingCondIlluminant":"19.6445 20.3718 16.8089","ViewingCondSurround":"3.92889 4.07439 3.36179","ViewingCondIlluminantType":"D50","Luminance":"76.03647 80 87.12462","MeasurementObserver":"CIE 1931","MeasurementBacking":"0 0 0","MeasurementGeometry":"Unknown","MeasurementFlare":"0.999%","MeasurementIlluminant":"D65","Technology":"Cathode Ray Tube Display","RedTRC":"(Binary data 2060 bytes, use -b option to extract)","GreenTRC":"(Binary data 2060 bytes, use -b option to extract)","BlueTRC":"(Binary data 2060 bytes, use -b option to extract)","DCTEncodeVersion":100,"APP14Flags0":"[14], Encoded with Blend: 1 downsampling","APP14Flags1":"(none)","ColorTransform":"YCbCr","ImageWidth":5676,"ImageHeight":3193,"EncodingProcess":"Baseline DCT, Huffman coding","BitsPerSample":8,"ColorComponents":3,"YCbCrSubSampling":"YCbCr4:4:4 (1 1)","Aperture":8,"DateTimeCreated":"2015:05:13 21:20:05","DigitalCreationDateTime":"2015:05:13 21:20:05","ImageSize":"5676x3193","Megapixels":18.1,"ScaleFactor35efl":1,"ShutterSpeed":1.6,"SubSecCreateDate":"2015:05:13 21:20:05.3","SubSecDateTimeOriginal":"2015:05:13 21:20:05.3","ThumbnailImage":"(Binary data 9311 bytes, use -b option to extract)","CircleOfConfusion":"0.030 mm","DOF":"inf (45.87 m - inf)","FOV":"19.5 deg","FocalLength35efl":"105.0 mm (35 mm equivalent: 105.0 mm)","HyperfocalDistance":"45.87 m","LensID":"AF-S DX VR Zoom-Nikkor 18-105mm f\/3.5-5.6G ED","LightValue":5.3},"embeddedMetaDataExtracted":true},"hasMetaData":false,"siblings":null,"hasSiblings":null,"scheduledTasks":null,"_dataChanged":false,"versionCount":1,"_temporaryFiles":[],"dependencies":null,"__dataVersionTimestamp":1620119582,"dao":null,"_fulldump":false,"o_dirtyFields":null},"Tag":[],"Category":null},"metaData":{"Slug":{"objectid":7,"inherited":false},"Metatitle":{"objectid":7,"inherited":false},"Metadescription":{"objectid":7,"inherited":false},"Showinlist":{"objectid":7,"inherited":false},"Publishedfrom":{"objectid":7,"inherited":false},"Publishedto":{"objectid":7,"inherited":false},"Title":{"objectid":7,"inherited":false},"Subtitle":{"objectid":7,"inherited":false},"Abstract":{"objectid":7,"inherited":false},"Body":{"objectid":7,"inherited":false},"Image":{"objectid":7,"inherited":false},"Tag":{"objectid":7,"inherited":false},"Category":{"objectid":7,"inherited":false}}},"arguments":[]}
    
    enhancement 
    opened by andrea-sdl 0
Owner
Sintra - Digital Business
Digital Business
Sintra  - Digital Business
Magento 2 Extension to cleanup admin menu and Store > Configuration area by arranging third party extension items.

Clean Admin Menu - Magento 2 Extension It will merge all 3rd party extension's menu items in backend's primary menu to a common menu item named "Exten

RedChamps 109 Jan 3, 2023
Helper script to aid upgrading magento 2 websites by detecting overrides. Now supports third party module detections

ampersand-magento2-upgrade-patch-helper Helper scripts to aid upgrading magento 2 websites, or when upgrading a magento module This tool looks for fil

Ampersand 242 Dec 18, 2022
An all-in-one package with the minimum third-party requirements to get started as quickly as possible with Pokemod Atlas

Pokemod Atlas All-In-One An all-in-one package with the minimum third-party requirements to get started as quickly as possible with Pokemod Atlas. ❤️

Pokemod 12 Oct 10, 2022
CoreShop - Pimcore eCommerce

CoreShop - Pimcore eCommerce CoreShop is a eCommerce Platform for Pimcore. Requirements Pimcore ^10.3 Installation Allow dev version to be installed:

CoreShop 239 Dec 14, 2022
Pimcore Localized Assets - localize your assets with no duplicating files

Localized assets in Pimcore Pimcore Bundle to localize your assets with same file. Installation composer require lemonmind/pimcore-localized-assets bi

LemonMind.com 7 Aug 31, 2022
Enhance product data quality and streamline content creation with the Pimcore and ChatGPT integration.

chatgpt-pimcore Enhance product data quality and streamline content creation with the Pimcore and ChatGPT integration. Overview The integration of Pim

Pravin chaudhary 6 Jun 5, 2023
A Symfony Feature Flag Bundle which easily allows you to configure and use your favorite feature flag provider.

Metro Markets FF Metro Markets FF is a Feature Flag Symfony Bundle. It easily allows you to configure and use your favorite feature flag provider. Ins

METRO Markets 14 May 23, 2022
A Symfony bundle built to schedule/consume repetitive tasks

Daily runs Code style Infection PHPUnit Rector Security Static analysis A Symfony bundle built to schedule/consume repetitive tasks Main features Exte

Guillaume Loulier 98 Jan 4, 2023
Bundle providing Honeypot field for the Form Builder in Ibexa DXP Experience/Commerce (3.X)

IbexaHoneypot Bundle providing Honeypot field for the Form Builder in Ibexa DXP Experience/Commerce (3.X) What is Honey pot? A honey pot trap involves

null 1 Oct 14, 2021
PHP bundle which makes array traversing / inserting dead easy.

XTraverse.php This bundle makes it dead easy to traverse through nested arrays/objects in PHP. Installation Via Composer composer require phiil/xtrave

Philipp Martini 2 Feb 12, 2022
Pageon Doctrine Data Grid Bundle

Pageon Doctrine Data Grid Bundle A bundle that wraps around the knp paginator bundle and doctrine to generate a data grid from your entity Documentati

null 1 Dec 14, 2021
Tabler.io bundle for Symfony - a backend/admin theme for easy integration

Tabler Bundle for Symfony This repository contains a Symfony bundle, integrating the fantastic Tabler.io HTML Template into your Symfony project. It s

Kevin Papst 22 Jan 2, 2023
A bundle to handle encoding and decoding of parameters using OpenSSL and Doctrine lifecycle events.

SpecShaper Encrypt Bundle A bundle to handle encoding and decoding of parameters using OpenSSL and Doctrine lifecycle events. Features include: Master

Mark Ogilvie 48 Nov 4, 2022
Symfony bundle for class/method memoization

Symfony service memoization bundle This bundle provides memoization for your services - every time you call the same method with the same arguments a

Dominik Chrástecký 16 Oct 31, 2022
A Symfony2 bundle that integrates Select2 as a drop-in replacement for a standard entity field on a Symfony form.

select2entity-bundle Introduction This is a Symfony bundle which enables the popular Select2 component to be used as a drop-in replacement for a stand

Ross Keatinge 214 Nov 21, 2022
Symfony Bundle to create HTML tables with bootstrap-table for Doctrine Entities.

HelloBootstrapTableBundle This Bundle provides simple bootstrap-table configuration for your Doctrine Entities. Used bootstrap-table version 1.18.3. I

Sebastian B 7 Nov 3, 2022
Laravel style FormRequests for Symfony; inspired by adamsafr/form-request-bundle

Somnambulist Form Request Bundle An implementation of form requests from Laravel for Symfony based on the original work by Adam Sapraliev. Requirement

Somnambulist Tech 1 Dec 14, 2021
RSQueue Bundle for Symfony

RSQueueBundle for Symfony Simple queuing system based on Redis Table of contents Installing/Configuring Tags Installing Redis Installing PHPRedis Inst

RSQueue 11 Oct 8, 2018
🕧 Provides an scheduler bundle for symfony framework.

?? PHP Scheduler Bundle Provides the integration of the PHP Scheduler library into Symfony Framework. Installation Run composer require flexic/schedul

FlexicSystems 3 Nov 15, 2022