Download the PHP package survos/base-bundle without Composer
On this page you can find all versions of the php package survos/base-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package base-bundle
Quick Start
`
Add the recipe repo, and until basebundle is ready for production, add the repo. Umbrella Admin Bundle is required for BaseBundle 2.0, it is likely that BaseBundle 3 will use Tabler.
"/home/tac/survos/bundles/recipes/index.json",
Create on github
UX Datatable (work in progress)
composer config repositories.ux-datatable '{"type": "vcs", "url": "[email protected]:tacman/ux-datatable.git"}' composer req tacman/ux-datatable
How KnpMenu works.
The MenuBuilderService in Survos\BaseBundle\Menu is registered because it's configured in services.yaml in this bundle.
This means that whenever knp_menu_get is called with the alias (e.g. survos_sidebar_menu), MenuBuilder.php creates a root element and emits an event, which SidebarMenuSubscriber (in the application) picks up.
Then we can build the menus.
@TODO:
- Extend from Umbrella
- Add DataTableBundle (ux component)
- Add #[RouteParameter] to Entity Properties.
- Make ParamConverter listen via Attributes
- Add LandingBundle (make:landing)
- Symfony 5.4 or 6
Survos Admin Bundle
A moderately-opinionated bundle that provides a quick way to get up and running with Symfony.
In particular, it sets up and uses the following:
- AdminLTE4 (Bootstrap 5)
- Knp Menu for sidebar and top nagivation
- webpack encore
- optional jQuery (for js-tree and datatables)
Assumptions
While the following can be disabled, by default the bundle assumes you want the following
- Authentication
- A user and an admin role
- Users
- An API (for Vue, DataTables)
- Bootstrap 5, icons
- Deployable on Heroku
Process
Go to ... and fill out the form with what you want. Run the script to create the Symfony shell.
javascript require('adminkit/static/js/app'); require('../css/app.scss'); scss @import "~adminkit/static/css/app.css"; javascript require('@popperjs/core'); require('bootstrap'); require('Hinclude/hinclude'); require('./css/app.scss');
scss @import "~bootstrap/dist/css/bootstrap.min.css"; @import "../../public/bundles/survosbase/volt-dist/css/volt.css"; bash rm -f LICENSE && rm -f README.md && mv .git .. && symfony new --full . --no-git --version=5.4 && mv ../.git . && git checkout . composer config extra.symfony.allow-contrib true composer req webapp && yarn install && yarn encore dev bash heroku create $REPO heroku addons:create heroku-postgresql:hobby-dev echo "DATABASE_URL=$(heroku config:get DATABASE_URL)" > .env.heroku.local
Without heroku, use sqlite (or setup MySQL)
echo "DATABASE_URL=sqlite:///%kernel.project_dir%/var/data.db" > .env.local echo "DATABASE_URL=sqlite:///%kernel.project_dir%/var/data.db" > .env.local
bash bin/console make:user User --is-entity --identity-property-name=email --with-password -n
sed -i "s|public function getEmail| public function getUsername() { return \$this->getEmail(); }\n\n public function getEmail|" src/Entity/User.php
sed -i "s|# MAILER_DSN|MAILER_DSN|" .env
echo "1,AppAuthenticator,SecurityController,/logout," | sed "s/,/\n/g" | bin/console make:auth sed -i "s|// For example.*;|return new RedirectResponse(\$this->urlGenerator->generate('app_homepage'));|" src/Security/AppAuthenticator.php sed -i "s|throw new \Exception('TODO\: provide a valid redirect inside '.FILE);||" src/Security/AppAuthenticator.php
bash composer config minimum-stability dev composer config minimum-stability beta composer config prefer-stable true
composer config repositories.tacman_hello '{"type": "path", "url": "/home/tac/survos/bundles/TacmanHelloBundle"}'
composer config repositories.html_prettify '{"type": "path", "url": "/home/tac/survos/bundles/HtmlPrettifyBundle"}' COMPOSER_DISABLE_NETWORK=1 composer req survos/html-prettify-bundle:*@dev
composer config repositories.barcode '{"type": "path", "url": "/home/tac/survos/bundles/BarcodeBundle"}' composer config repositories.survos_workflow '{"type": "path", "url": "/home/tac/survos/bundles/WorkflowBundle"}'
composer config repositories.survos_maker '{"type": "path", "url": "/home/tac/survos/bundles/maker-bundle"}' composer req survos/maker-bundle:*@dev && git diff config
composer req survos/barcode-bundle:*@dev
git checkout . && composer req survos/barcode-bundle:*@dev && git diff config
composer config repositories.survos_tree '{"type": "path", "url": "/home/tac/survos/bundles/SurvosTreeBundle"}' composer req survos/tree-bundle:*@dev && git diff config
composer config repositories.foo '{"type": "path", "url": "/home/tac/survos/bundles/FooBundle"}' composer req survos/foo-bundle:*@dev
composer config repositories.barcode '{"type": "vcs", "url": "[email protected]:survos/BarcodeBundle"}'
composer config repositories.barcode '{"type": "path", "url": "/home/tac/survos/bundles/BarcodeBundle"}' composer req survos/barcode-bundle:*@dev && git diff config composer req survos/barcode-bundle && git diff config
git checkout . && composer req knpuniversity/lorem-ipsum-bundle:*@dev && git diff config
composer config repositories.lorum '{"type": "vcs", "url": "[email protected]:tacman/lorem-ipsum-bundle.git"}'
composer config repositories.lorum '{"type": "path", "url": "/home/tac/survos/bundles/lorem-ipsum-bundle"}' git checkout . && composer req knpuniversity/lorem-ipsum-bundle:*@dev && git diff config
composer config repositories.knp_dictionary '{"type": "vcs", "url": "[email protected]:tacman/DictionaryBundle.git"}'
composer config extra.symfony.endpoint --json '["/home/tac/survos/bundles/recipes/index.json","https://api.github.com/repos/survos/recipes/contents/index.json", "flex://defaults"]'
composer config repositories.knp_markdown '{"type": "vcs", "url": "[email protected]:tacman/KnpMarkdownBundle.git"}' composer req knplabs/knp-markdown-bundle:dev-symfony6
composer config repositories.survos_grid_bundle '{"type": "vcs", "url": "[email protected]:survos/SurvosGridBundle.git"}' composer config repositories.survos_base_bundle '{"type": "vcs", "url": "[email protected]:survos/BaseBundle.git"}' composer config repositories.ux-datatable '{"type": "vcs", "url": "[email protected]:tacman/ux-datatable.git"}' composer req tacman/ux-datatable
composer require umbrella2/adminbundle php bin/console make:admin:home
composer config repositories.cs_fixer '{"type": "vcs", "url": "[email protected]:tacman/PHP-CS-Fixer.git"}' composer config repositories.survos_workflow '{"type": "vcs", "url": "[email protected]:survos/workflow-bundle.git"}' composer config repositories.tabler '{"type": "vcs", "url": "[email protected]:survos/TablerBundle.git"}' composer req survos/tabler-bundle:dev-tac
composer req survos/base-bundle:"^2.0.3"
composer require symfony/webpack-encore-bundle yarn install yarn add sass-loader@^11.0.0 sass --dev yarn add https://github.com/survos/adminkit.git
echo '@import "~bootstrap/dist/css/bootstrap.min.css";' > assets/styles/app.scss
echo '@import "../../public/bundles/survosbase/volt-dist/css/volt.css";' >>assets/styles/app.scss
FIRST, initialize SurvosBase, which creates app.scss. Then fix webpack.
sed -i "s|//.enableSassLoader()|.enableSassLoader()|" webpack.config.js sed -i "s|import './styles/app.css';|import './styles/app.scss';|" assets/js/app.js
yarn install
yarn add "@symfony/webpack-encore@^1.0.0" yarn add "@symfony/stimulus-bridge@^2.0.0" yarn add bootstrap@next
yarn add datatables.net-bs5 datatables.net-buttons-bs5 datatables.net-scroller datatables.net-scroller-bs5 datatables.net-select-bs5 datatables.net-searchpanes datatables.net-searchpanes-bs5 datatables.net-colreorder datatables.net-colreorder-bs5
yaml
config/packages/admin_lte.yaml
admin_lte: knp_menu: enable: true
routes:
adminlte_welcome: app_homepage
adminlte_login: app_login
adminlte_profile: app_profile
yaml
config/routes/survos_base.yaml
survos_base: {path: /, controller: 'Survos\BaseBundle\Controller\BaseController::base'}
app_homepage: {path: /, controller: 'Survos\BaseBundle\Controller\LandingController::base'}
app_logo: {path: /logo, controller: 'Survos\BaseBundle\Controller\BaseController::logo'} app_profile: {path: /profile, controller: 'Survos\BaseBundle\Controller\BaseController::profile'}
profile: {path: /profile, controller: 'Survos\BaseBundle\Controller\LandingController::profile'}
logout: {path: /logout, controller: 'Survos\BaseBundle\Controller\LandingController::logout'}
required if app_profile is used, since you can change the password from the profile
app_change_password: {path: /change-password, controller: 'Survos\BaseBundle\Controller\BaseController::changePassword'} yaml
config/routes/api_platform.yaml
api_platform: resource: . type: api_platform prefix: /api options: expose: true yaml
api/config/api_platform/resources.yaml
App\Entity\User: ~ App\Entity\Location: shortName: 'Location' # optional description: 'A place within a building where inventory item is physically located.' # optional attributes: # optional pagination_items_per_page: 30 # optional normalization_context: groups: ['jstree'] denormalization_context: groups: ['jstree'] yaml
config/packages/api_platform.yaml
api_platform: mapping: paths:
- '%kernel.project_dir%/src/Entity'
- '%kernel.project_dir%/config/api_platform' # yaml or xml directory configuration]
patch_formats:
json: ['application/merge-patch+json']
swagger:
versions: [3]
yaml
config/serializer/serialization.yaml
App\Entity\User: attributes: id: groups: ['Default'] email: groups: ['Default']
App\Entity\Song: attributes: title: groups: ['Default']
### Customizing the bundle
### Deploy to heroku
heroku create $projectName
heroku buildpacks:add heroku/php
heroku buildpacks:add heroku/nodejs
echo "web: vendor/bin/heroku-php-nginx -C heroku-nginx.conf -F fpm_custom.conf public/" > Procfile
heroku buildpacks:add heroku/nodejs
heroku buildpacks:add --index 2 heroku/nodejs
composer config --unset repositories.survosbase && composer update
git commit -m "unset survosbase" . && git push heroku master
https://devcenter.heroku.com/articles/deploying-symfony4
bin/console survos:setup-heroku
## alternatives
https://github.com/xriley/portal-theme-bs5
All versions of base-bundle with dependencies
ext-json Version *
ext-zip Version *
api-platform/core Version ^2.6
doctrine/common Version ^2.0|^3.0
knplabs/knp-menu Version ^3.0
knplabs/knp-menu-bundle Version ^3.0
knpuniversity/oauth2-client-bundle Version ^v2.10.0
mindscreen/yarnlock Version ^1.0
sensio/framework-extra-bundle Version ^6.2
survos/core-bundle Version ^1.0
symfony/config Version >= 5.4
symfony/form Version >= 5.4
symfony/mailer Version *
symfony/maker-bundle Version ^1.36
symfony/options-resolver Version >= 5.4
symfony/password-hasher Version ^6.1
symfony/process Version >= 5.4
symfony/routing Version ^6.0
symfony/security-bundle Version ^6.0
symfony/security-csrf Version >= 5.4
symfony/security-http Version >= 5.4
symfony/string Version >= 5.4
symfony/twig-bundle Version >= 5.4
symfony/validator Version >= 5.4
symfony/webpack-encore-bundle Version ^v1.13.1
symfony/workflow Version >= 5.4
symfony/yaml Version *
twig/twig Version ^3.3
umbrella2/adminbundle Version ^6.1