Installation
john-it-com/bc-ui-presentation is a private PHP package hosted on packagist.com. It can be installed using composer.
Composer
To install the package add the private john-it-com
packagist repository to the composer.json of your project:
"repositories": [
{
"type": "composer",
"url": "https://repo.packagist.com/john-it-com/",
"canonical": false
},
],
Also the authentication data for the private packagist repository must be added to your composer
configuration at ~/.config/composer/auth.json:
{
"http-basic": {
"repo.packagist.com": {
"username": "johnit",
"password": "SEE PASSWORD MANAGER"
}
}
}
Next you can install the package using the following command:
composer require john-it-com/bc-ui-presentation
Vendor files
This package includes several configuration files which need to be published:
php artisan vendor:publish --provider="JohnIt\Bc\Ui\Presentation\PackageServiceProvider"
The package includes some Javascript and CSS assets which need to be published to the public-folder of your
main application. To publish those assets execute the following command:
php artisan vendor:publish --tag=public --force
These assets should also be commited.
To keep the assets up-to-date and avoid issues in future updates, you may add the
vendor:publish --tag=public --force command to the post-update-cmd scripts in your
application’s composer.json file. This will autopmatically execute
artisan vendor:publish command on composer updates:
{
"scripts": {
"post-update-cmd": [
"@php artisan vendor:publish --tag=public --force"
]
}
}
Database migrations
Nothing to be done here.
Pusher
This package uses Pusher for broadcasting. Please create a Pusher account and a Pusher channel
for your application. Inside your .env file make shure to add the following configuration:
BROADCAST_DRIVER=pusher
PUSHER_APP_ID=<your-pusher-app-id>
PUSHER_APP_KEY=<your-pusher-app-key>
PUSHER_APP_SECRET=<your-pusher-app-secret>
PUSHER_APP_CLUSTER=eu
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
Javascript
This package contains some Javascript components which need access to the following environment variables:
MIX_PUSHER_APP_KEYMIX_PUSHER_APP_CLUSTER
All environment variables inside your .env file which are prefixed with MIX_ are made available to your main
projects webpack.mix.js inside of the process.env variable (see
documentation).
To make the environment variables inside process.env available to the components of this package you need to
copy them into the global window.env variable.
All components assume, that the required environment variables are present inside of the global window.env variable.
To achieve this go into your main project and add the following code to your app.js:
window.env = {
MIX_PUSHER_APP_KEY: process.env.MIX_PUSHER_APP_KEY,
MIX_PUSHER_APP_CLUSTER: process.env.MIX_PUSHER_APP_CLUSTER
};
Then recompile your Javascript assets.