mirror of
https://github.com/symfony/recipes-contrib.git
synced 2026-09-11 23:26:40 +03:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8553f7937f |
@@ -1,10 +0,0 @@
|
||||
; top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
; Unix-style newlines
|
||||
[*]
|
||||
end_of_line = LF
|
||||
|
||||
[*.json]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
@@ -1,9 +0,0 @@
|
||||
| Q | A
|
||||
| ------------- | ---
|
||||
| License | MIT
|
||||
| Packagist | <!-- Link to package on packagist -->
|
||||
|
||||
<!--
|
||||
Please, carefully read the Contributing section in the README
|
||||
before submitting a pull request.
|
||||
-->
|
||||
@@ -1,13 +0,0 @@
|
||||
name: Cleanup Flex testing endpoint
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [ closed ]
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
jobs:
|
||||
call-flex-cleanup:
|
||||
uses: symfony/recipes/.github/workflows/callable-flex-cleanup.yml@main
|
||||
@@ -1,7 +0,0 @@
|
||||
name: Update Flex Archives
|
||||
|
||||
on: [workflow_dispatch]
|
||||
|
||||
jobs:
|
||||
call-flex-update:
|
||||
uses: symfony/recipes/.github/workflows/callable-flex-update-archived.yml@main
|
||||
@@ -1,18 +0,0 @@
|
||||
name: Update Flex endpoint
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
jobs:
|
||||
call-flex-update:
|
||||
uses: symfony/recipes/.github/workflows/callable-flex-update.yml@main
|
||||
with:
|
||||
contrib: true
|
||||
secrets:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
@@ -1,17 +0,0 @@
|
||||
name: Q&A
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
jobs:
|
||||
call-qa:
|
||||
uses: symfony/recipes/.github/workflows/callable-qa.yml@main
|
||||
with:
|
||||
contrib: true
|
||||
find_yaml: -not -wholename 'codeception/codeception/*/tests/*' -not -wholename 'codeception/codeception/*/codeception.yml'
|
||||
secrets:
|
||||
token: ${{ secrets.BOT_TOKEN }}
|
||||
@@ -1,2 +0,0 @@
|
||||
hosting:
|
||||
tier: '%env(HOSTING_TIER)%'
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Torr\\Hosting\\HostingBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"HOSTING_TIER": "development"
|
||||
},
|
||||
"gitignore": [
|
||||
"/.build-info.json"
|
||||
]
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
hosting:
|
||||
tier: '%env(HOSTING_TIER)%'
|
||||
installation: "%env(HOSTING_INSTALLATION)%"
|
||||
@@ -1,3 +0,0 @@
|
||||
hosting:
|
||||
resource: '@HostingBundle/config/routes.yaml'
|
||||
prefix: /hosting
|
||||
@@ -1,15 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Torr\\Hosting\\HostingBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"HOSTING_TIER": "development",
|
||||
"HOSTING_INSTALLATION": ""
|
||||
},
|
||||
"gitignore": [
|
||||
"/.build-info.json"
|
||||
]
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
storyblok:
|
||||
space_id: "%env(int:STORYBLOK_SPACE_ID)%"
|
||||
management_token: "%env(STORYBLOK_MANAGEMENT_TOKEN)%"
|
||||
content_token: "%env(STORYBLOK_CONTENT_TOKEN)%"
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Torr\\Storyblok\\TorrStoryblokBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"STORYBLOK_SPACE_ID": "",
|
||||
"STORYBLOK_MANAGEMENT_TOKEN": "",
|
||||
"STORYBLOK_CONTENT_TOKEN": ""
|
||||
}
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
storyblok:
|
||||
space_id: "%env(int:STORYBLOK_SPACE_ID)%"
|
||||
management_token: "%env(STORYBLOK_MANAGEMENT_TOKEN)%"
|
||||
content_token: "%env(STORYBLOK_CONTENT_TOKEN)%"
|
||||
@@ -1,3 +0,0 @@
|
||||
storyblok:
|
||||
prefix: /storyblok/
|
||||
resource: '@TorrStoryblokBundle/config/routes.yaml'
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Torr\\Storyblok\\TorrStoryblokBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"STORYBLOK_SPACE_ID": "",
|
||||
"STORYBLOK_MANAGEMENT_TOKEN": "",
|
||||
"STORYBLOK_CONTENT_TOKEN": ""
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
task_manager:
|
||||
queues:
|
||||
# queues sorted by priority. Highest priority at the top
|
||||
- app_very_urgent
|
||||
- app_urgent
|
||||
- app
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Torr\\TaskManager\\TaskManagerBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
Copyright (c) 2017-present Fabien Potencier
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished
|
||||
to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
-77
@@ -1,77 +0,0 @@
|
||||
Symfony Recipes (Contrib)
|
||||
=========================
|
||||
|
||||
Symfony recipes allow the automation of Composer packages configuration via the
|
||||
`Symfony Flex`_ Composer plugin.
|
||||
|
||||
This repository hosts contributed recipes for Composer packages that are not
|
||||
part of the "official" `Symfony recipes`_. To enable recipes defined in this
|
||||
repository for your project, run the following command:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
composer config extra.symfony.allow-contrib true
|
||||
|
||||
See `RECIPES.md`_ for a full list of recipes that live in this repository.
|
||||
|
||||
Contributing
|
||||
------------
|
||||
|
||||
For more information about contributing a recipe, read the `documentation`_ on
|
||||
the main repository and the Best Practices below.
|
||||
|
||||
Unlike for official recipes, the pull requests for new contrib recipes are
|
||||
managed by the community. Pull requests are reviewed by the Symfony Bot and
|
||||
automatically merged when the following conditions are met (in that order):
|
||||
|
||||
* The pull request title does not contain "WIP";
|
||||
|
||||
* The Symfony Bot approved the pull request and reported no validation errors;
|
||||
|
||||
* Someone (not the Symfony bot nor the pull request author) approved the pull
|
||||
request;
|
||||
|
||||
* The pull request author or the reviewer is a Symfony Core Merger.
|
||||
|
||||
Best Practices
|
||||
--------------
|
||||
|
||||
Default Bundle Config
|
||||
#####################
|
||||
|
||||
A recipe for a bundle should not contain all the configuration the bundle has to
|
||||
offer. A good recipe only contains a suggestion config for an application. That
|
||||
is config that needs to be configured but no real default value exists.
|
||||
|
||||
**Example:** The "items per page" in a paginator bundle or API credentials for an API
|
||||
client bundle.
|
||||
|
||||
If environment variables are used, they must be provided to the bundle's config.
|
||||
|
||||
A bundle without config or routes do not need a recipe. Flex is smart enough to
|
||||
install that bundle anyways.
|
||||
|
||||
Modify Other Bundle's config
|
||||
############################
|
||||
|
||||
The general rule is that no recipe should modify other bundle's configuration. There
|
||||
is however one exception. A recipe is allowed to append to a "config collection".
|
||||
|
||||
**Example:** Add a new connection to DoctrineBundle or add a new cache adapter to Symfony
|
||||
Framework bundle.
|
||||
|
||||
Maintainability
|
||||
###############
|
||||
|
||||
The symfony/recipes-contrib repository should contain the config for packages. Using
|
||||
"``copy-from-package`` Configurator" for routes and config is not allowed. That would
|
||||
make the recipes impossible to maintain and to assure their quality.
|
||||
|
||||
Recipes is also not a replacement for ``composer create-project``. That means it is
|
||||
not intended to be used as "bootstrap full application" and copy a lot of PHP code,
|
||||
front-end assets etc. Recipes are for quick installation of packages.
|
||||
|
||||
.. _`Symfony Flex`: https://github.com/symfony/flex
|
||||
.. _`Symfony recipes`: https://github.com/symfony/recipes
|
||||
.. _`documentation`: https://github.com/symfony/recipes
|
||||
.. _`RECIPES.md`: https://github.com/symfony/recipes-contrib/blob/flex/main/RECIPES.md
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
abel_keycloak_bearer_only_adapter:
|
||||
issuer: '%env(OAUTH_KEYCLOAK_ISSUER)%'
|
||||
realm: '%env(OAUTH_KEYCLOAK_REALM)%'
|
||||
client_id: '%env(OAUTH_KEYCLOAK_CLIENT_ID)%'
|
||||
client_secret: '%env(OAUTH_KEYCLOAK_CLIENT_SECRET)%'
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"ABEL\\Bundle\\keycloakBearerOnlyAdapterBundle\\ABELkeycloakBearerOnlyAdapterBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"OAUTH_KEYCLOAK_ISSUER": "...",
|
||||
"OAUTH_KEYCLOAK_REALM": "...",
|
||||
"OAUTH_KEYCLOAK_CLIENT_ID": "...",
|
||||
"OAUTH_KEYCLOAK_CLIENT_SECRET": "..."
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
meteion:
|
||||
dbal_connection: 'default'
|
||||
rawexd_path: '%env(METEION_RAWEXD_PATH)%'
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"MeteionBundle\\MeteionBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"METEION_RAWEXD_PATH": "/path/to/rawexd"
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
sentinelle:
|
||||
# Dry-run: Sentinelle detects, logs and alerts, but blocks NOTHING.
|
||||
# Nobody wires automatic blocking into a production site without knowing
|
||||
# what it will shut out. Watch the dashboard for a few days, ask yourself
|
||||
# "would I have wanted to block that one?", then switch it off.
|
||||
dry_run: true
|
||||
alert:
|
||||
recipient: '%env(SENTINELLE_ALERT_EMAIL)%'
|
||||
access:
|
||||
role: ROLE_ADMIN
|
||||
never_block:
|
||||
# At minimum your own outbound address. Private ranges are protected
|
||||
# by default, but yours is not: one wrong move locks you out.
|
||||
ips: '%env(default::SENTINELLE_ALLOWLIST)%'
|
||||
@@ -1,3 +0,0 @@
|
||||
sentinelle:
|
||||
resource: '@SentinelleBundle/config/routes.php'
|
||||
type: php
|
||||
@@ -1,40 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Acencyril\\SentinelleBundle\\SentinelleBundle": [
|
||||
"all"
|
||||
]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"#1": "Where security alerts are sent.",
|
||||
"SENTINELLE_ALERT_EMAIL": "admin@example.com",
|
||||
"#2": "IPs or CIDRs, comma separated, that must never be blocked.",
|
||||
"#3": "PUT YOUR OWN OUTBOUND ADDRESS HERE before going live:",
|
||||
"#4": "without it, an automatic block can lock you out of your own site.",
|
||||
"SENTINELLE_ALLOWLIST": ""
|
||||
},
|
||||
"post-install-output": [
|
||||
" <bg=blue;fg=white>Sentinelle is installed.</> Three things before going live:",
|
||||
"",
|
||||
" * Set <comment>SENTINELLE_ALLOWLIST</comment> in your <comment>.env</comment> — at minimum your own",
|
||||
" outbound address. Without it, an automatic block can lock you out of",
|
||||
" your own site.",
|
||||
"",
|
||||
" * Create the schema:",
|
||||
" <comment>php bin/console doctrine:migrations:diff</comment>",
|
||||
" <comment>php bin/console doctrine:migrations:migrate</comment>",
|
||||
"",
|
||||
" * Check it can do its job:",
|
||||
" <comment>php bin/console sentinelle:check</comment>",
|
||||
"",
|
||||
" Sentinelle starts in <comment>dry-run</comment>: it detects, logs and alerts, but blocks",
|
||||
" nothing. Watch <comment>/admin/activity</comment> for a few days, then set",
|
||||
" <comment>sentinelle.dry_run</comment> to <comment>false</comment>.",
|
||||
"",
|
||||
" And schedule the purge, without which strike counters never reset:",
|
||||
" <comment>0 4 * * * php bin/console sentinelle:purge</comment>",
|
||||
""
|
||||
]
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
# Read the documentation: https://github.com/acseo/TypesenseBundle/blob/master/README.md
|
||||
acseo_typesense:
|
||||
typesense:
|
||||
url: '%typesense_url%'
|
||||
key: '%typesense_key%'
|
||||
# Optional : add prefix to all collection names in Typesense
|
||||
#collection_prefix: 'app_'
|
||||
# Collection settings
|
||||
collections: null
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"ACSEO\\TypesenseBundle\\ACSEOTypesenseBundle": ["all"]
|
||||
},
|
||||
"container": {
|
||||
"typesense_url": "%env(TYPESENSE_URL)%",
|
||||
"typesense_key": "%env(TYPESENSE_KEY)%"
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"TYPESENSE_URL": "http://localhost:8108",
|
||||
"TYPESENSE_KEY": "123"
|
||||
}
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
ihsan_ratchet:
|
||||
web_socket_port: "%env(WEB_SOCKET_PORT)%"
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Ihsan\\RatchetBundle\\IhsanRatchetBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"WEB_SOCKET_PORT": "7777"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
adback_api_client:
|
||||
access_token: "%env(ADBACK_API_CLIENT_ACCESS_TOKEN)%"
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Adback\\ApiClientBundle\\AdbackApiClientBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"ADBACK_API_CLIENT_ACCESS_TOKEN": "adback-access-token"
|
||||
}
|
||||
}
|
||||
-4
@@ -1,4 +0,0 @@
|
||||
adlarge_fixtures_documentation:
|
||||
title: 'Fixtures documentation'
|
||||
reloadCommands:
|
||||
- php bin/console doctrine:fixtures:load
|
||||
-2
@@ -1,2 +0,0 @@
|
||||
AdlargeFixturesDocumentation:
|
||||
resource: '@AdlargeFixturesDocumentationBundle/Resources/config/routing.yml'
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Adlarge\\FixturesDocumentationBundle\\AdlargeFixturesDocumentationBundle": ["dev"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
when@dev:
|
||||
hexagonal_maker:
|
||||
application_path: 'Application'
|
||||
domain_path: 'Domain'
|
||||
infrastructure_path: 'Infrastructure'
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"AdrienLbt\\HexagonalMakerBundle\\HexagonalMakerBundle": ["dev"]
|
||||
},
|
||||
"composer-scripts": {
|
||||
"make:hexagonal:autoload": "symfony-cmd"
|
||||
},
|
||||
"post-install-output": [
|
||||
"🎉 Le bundle Hexagonal Maker has been installed."
|
||||
],
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
captcha_bundle:
|
||||
width: 120
|
||||
height: 40
|
||||
length: 6
|
||||
lines: 8
|
||||
characters: 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789'
|
||||
case_sensitive: true
|
||||
|
||||
# Uncomment to render the twig block for captcha
|
||||
#twig:
|
||||
# form_themes:
|
||||
# - '@AgilelabFrCaptcha/form/agilelab_fr_captcha.html.twig'
|
||||
@@ -1,2 +0,0 @@
|
||||
agilelab_fr_captcha_bundle.routes:
|
||||
resource: '@AgilelabFrCaptchaBundle/config/routes.yaml'
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"AgilelabFr\\CaptchaBundle\\AgilelabFrCaptchaBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
}
|
||||
}
|
||||
@@ -1,151 +0,0 @@
|
||||
# Doctrine Doctor - Runtime Analysis for Doctrine ORM
|
||||
# Full documentation: https://github.com/ahmed-bhs/doctrine-doctor/blob/main/docs/CONFIGURATION.md
|
||||
|
||||
doctrine_doctor:
|
||||
# Enable Doctrine Doctor (automatically enabled in dev/test environments)
|
||||
enabled: '%kernel.debug%'
|
||||
|
||||
# # Web Profiler integration
|
||||
# profiler:
|
||||
# show_in_toolbar: true
|
||||
# show_debug_info: false
|
||||
#
|
||||
# # Performance Analyzers (all enabled by default with production-ready thresholds)
|
||||
# analyzers:
|
||||
# # Detect N+1 query problems (most common performance issue)
|
||||
# n_plus_one:
|
||||
# enabled: true
|
||||
# threshold: 5 # Trigger when 5+ similar queries are detected
|
||||
#
|
||||
# # Detect slow queries
|
||||
# slow_query:
|
||||
# enabled: true
|
||||
# threshold: 100 # milliseconds
|
||||
#
|
||||
# # Detect missing database indexes
|
||||
# missing_index:
|
||||
# enabled: true
|
||||
# slow_query_threshold: 50 # Only EXPLAIN queries slower than 50ms
|
||||
# explain_queries: true
|
||||
# min_rows_scanned: 1000 # Suggest index when 1000+ rows scanned
|
||||
#
|
||||
# # Analyze hydration performance
|
||||
# hydration:
|
||||
# enabled: true
|
||||
# row_threshold: 99 # Warning when hydrating 100+ objects
|
||||
# critical_threshold: 999 # Critical when hydrating 1000+ objects
|
||||
#
|
||||
# # Detect excessive JOINs
|
||||
# eager_loading:
|
||||
# enabled: true
|
||||
# join_threshold: 4 # Warning with 4+ JOINs
|
||||
# critical_join_threshold: 7 # Critical with 7+ JOINs
|
||||
#
|
||||
# # Detect findAll() without limits
|
||||
# find_all:
|
||||
# enabled: true
|
||||
# threshold: 99 # Warning when findAll() returns 100+ rows
|
||||
#
|
||||
# # Detect batch operations without EntityManager::clear()
|
||||
# entity_manager_clear:
|
||||
# enabled: true
|
||||
# batch_size_threshold: 20 # Suggest clear() after 20+ operations
|
||||
#
|
||||
# # Suggest getReference() for simple ID lookups
|
||||
# get_reference:
|
||||
# enabled: true
|
||||
# threshold: 2 # Suggest after 2+ simple SELECT by ID
|
||||
#
|
||||
# # Detect flush() in loops (anti-pattern)
|
||||
# flush_in_loop:
|
||||
# enabled: true
|
||||
# flush_count_threshold: 5 # Trigger after 5+ flush calls
|
||||
# time_window_ms: 1000 # Within 1 second window
|
||||
#
|
||||
# # Detect lazy loading in loops
|
||||
# lazy_loading:
|
||||
# enabled: true
|
||||
# threshold: 10 # Trigger with 10+ lazy load queries
|
||||
#
|
||||
# # Suggest bulk operations for mass updates/deletes
|
||||
# bulk_operation:
|
||||
# enabled: true
|
||||
# threshold: 20 # Suggest DQL UPDATE/DELETE for 20+ operations
|
||||
#
|
||||
# # Optimize JOIN usage
|
||||
# join_optimization:
|
||||
# enabled: true
|
||||
# max_joins_recommended: 5 # Warning threshold
|
||||
# max_joins_critical: 8 # Critical threshold
|
||||
#
|
||||
# # Suggest partial objects when loading full entities unnecessarily
|
||||
# partial_object:
|
||||
# enabled: true
|
||||
# threshold: 5 # Trigger after 5+ queries
|
||||
#
|
||||
# # Suggest DTO hydration for aggregation queries
|
||||
# dto_hydration:
|
||||
# enabled: true
|
||||
#
|
||||
# # Security Analyzers
|
||||
# dql_injection:
|
||||
# enabled: true # Detect DQL/SQL injection vulnerabilities
|
||||
#
|
||||
# sql_injection_raw_queries:
|
||||
# enabled: true # Detect SQL injection in raw queries
|
||||
#
|
||||
# sensitive_data_exposure:
|
||||
# enabled: true # Detect sensitive data in serialization
|
||||
#
|
||||
# insecure_random:
|
||||
# enabled: true # Detect insecure random generators
|
||||
#
|
||||
# # Code Quality Analyzers
|
||||
# collection_initialization:
|
||||
# enabled: true # Detect uninitialized collections
|
||||
#
|
||||
# cascade_configuration:
|
||||
# enabled: true # Analyze cascade configurations
|
||||
#
|
||||
# cascade_all:
|
||||
# enabled: true # Detect dangerous cascade="all"
|
||||
#
|
||||
# cascade_persist_independent:
|
||||
# enabled: true # Detect cascade="persist" risks
|
||||
#
|
||||
# missing_orphan_removal:
|
||||
# enabled: true # Detect missing orphanRemoval
|
||||
#
|
||||
# cascade_remove_independent:
|
||||
# enabled: true # Detect cascade="remove" risks
|
||||
#
|
||||
# bidirectional_consistency:
|
||||
# enabled: true # Check bidirectional associations
|
||||
#
|
||||
# orphan_removal_no_cascade:
|
||||
# enabled: true # Detect orphanRemoval without cascade
|
||||
#
|
||||
# ondelete_mismatch:
|
||||
# enabled: true # Check ORM vs DB cascade consistency
|
||||
#
|
||||
# foreign_key_mapping:
|
||||
# enabled: true # Detect FKs as primitives instead of relations
|
||||
#
|
||||
# # Configuration Analyzers
|
||||
# strict_mode:
|
||||
# enabled: true # Check MySQL/MariaDB strict mode
|
||||
#
|
||||
# charset:
|
||||
# enabled: true # Check database charset (utf8mb4 recommended)
|
||||
#
|
||||
# innodb_engine:
|
||||
# enabled: true # Check if InnoDB is used
|
||||
#
|
||||
# connection_pooling:
|
||||
# enabled: true # Analyze connection pool config
|
||||
#
|
||||
# doctrine_cache:
|
||||
# enabled: true # Detect ArrayCache in production
|
||||
#
|
||||
# naming_convention:
|
||||
# enabled: true # Check snake_case naming
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"AhmedBhs\\DoctrineDoctor\\DoctrineDoctorBundle": ["dev", "test"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
<fg=blue;options=bold>Doctrine Doctor</> has been successfully installed!
|
||||
|
||||
Runtime analysis for Doctrine ORM - integrated into the Symfony Web Profiler.
|
||||
|
||||
<options=bold>Next steps:</>
|
||||
1. Browse your application to trigger database queries
|
||||
2. Open the Web Profiler and click the <comment>Doctrine Doctor</> panel
|
||||
|
||||
Customize analyzer thresholds in <comment>%CONFIG_DIR%/packages/doctrine_doctor.yaml</>
|
||||
|
||||
Documentation: https://github.com/ahmed-bhs/doctrine-doctor
|
||||
|
||||
Happy debugging! 🚀
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
ajardin_blizzard_sdk:
|
||||
blizzard:
|
||||
client_id: '%env(BLIZZARD_CLIENT_ID)%'
|
||||
client_secret: '%env(BLIZZARD_CLIENT_SECRET)%'
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Ajardin\\BlizzardSdkBundle\\AjardinBlizzardSdkBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"#1": "Generate your own API credentials through the Blizzard Developer Portal.",
|
||||
"#2": "https://develop.battle.net/access/clients",
|
||||
"BLIZZARD_CLIENT_ID": "",
|
||||
"BLIZZARD_CLIENT_SECRET": ""
|
||||
}
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
require __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
use Symfony\Component\Filesystem\Filesystem;
|
||||
|
||||
const SOURCE_DIRECTORY = 'vendor/ajardin/docker-symfony';
|
||||
const TARGET_DIRECTORY = 'docker';
|
||||
|
||||
$filesystem = new Filesystem();
|
||||
|
||||
/**
|
||||
* Create the Docker directory at the project root
|
||||
*/
|
||||
if ($filesystem->exists(TARGET_DIRECTORY) === false) {
|
||||
$filesystem->mkdir(TARGET_DIRECTORY);
|
||||
}
|
||||
|
||||
/**
|
||||
* Mirror the vendor directory with the directory created at the project root
|
||||
*/
|
||||
if ($filesystem->exists(SOURCE_DIRECTORY) === true) {
|
||||
$filesystem->mirror(SOURCE_DIRECTORY, TARGET_DIRECTORY, null, ['override' => true]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Define the default environment variables
|
||||
*/
|
||||
if ($filesystem->exists(TARGET_DIRECTORY . '/.env') === false) {
|
||||
$filesystem->copy(
|
||||
TARGET_DIRECTORY . '/.env.dist',
|
||||
TARGET_DIRECTORY . '/.env'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Define the default Nginx configuration
|
||||
*/
|
||||
if ($filesystem->exists(TARGET_DIRECTORY . '/nginx/conf.d/custom.conf') === false) {
|
||||
$filesystem->copy(
|
||||
TARGET_DIRECTORY . '/nginx/conf.d/symfony.conf.dist',
|
||||
TARGET_DIRECTORY . '/nginx/conf.d/custom.conf'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy the default Makefile at the project root
|
||||
*/
|
||||
if ($filesystem->exists('Makefile') === false) {
|
||||
$filesystem->copy(
|
||||
TARGET_DIRECTORY . '/Makefile.sample',
|
||||
'Makefile'
|
||||
);
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"composer-scripts": {
|
||||
"bin/docker-upgrade": "php-script"
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"bin/": "%BIN_DIR%/"
|
||||
},
|
||||
"gitignore": [
|
||||
"/%BIN_DIR%/docker-upgrade",
|
||||
"/docker/"
|
||||
]
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
* Edit the <fg=green>docker/.env</> file to configure your own settings.
|
||||
|
||||
* Edit the <fg=green>docker/nginx/conf.d/custom.conf</> file to configure your own virtual host.
|
||||
|
||||
* To manage the Docker environment from the project directory:
|
||||
- If you already have a Makefile in your project, copy the content of the <fg=green>docker/Makefile.sample</> file at the top of it.
|
||||
- If you do not already have a Makefile, the <fg=green>docker/Makefile.sample</> file will be installed in your project.
|
||||
|
||||
* Run <fg=green>make</> to display the list of available commands.
|
||||
|
||||
Documentation: https://github.com/ajardin/docker-symfony/wiki
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
ajgarlag_openid_connect_provider:
|
||||
resource: '@AjgarlagOpenIDConnectProviderBundle/config/routes.php'
|
||||
type: php
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Ajgarlag\\Bundle\\OpenIDConnectProviderBundle\\AjgarlagOpenIDConnectProviderBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Ajgl\\Twig\\Extension\\SymfonyBundle\\AjglBreakpointTwigExtensionBundle": ["dev"]
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
consul:
|
||||
service:
|
||||
name: '%env(resolve:CONSUL_SERVICE_NAME)%'
|
||||
host: '%env(resolve:CONSUL_SERVICE_HOST)%'
|
||||
port: '%env(resolve:CONSUL_SERVICE_PORT)%'
|
||||
client:
|
||||
base_uri: '%env(resolve:CONSUL_CLIENT_BASE_URI)%'
|
||||
@@ -1,2 +0,0 @@
|
||||
consul_bundle:
|
||||
resource: "@ConsulBundle/Resources/config/routing.yml"
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Akondas\\ConsulBundle\\ConsulBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"CONSUL_SERVICE_NAME": "symfony-app",
|
||||
"CONSUL_SERVICE_HOST": "localhost",
|
||||
"CONSUL_SERVICE_PORT": "8000",
|
||||
"CONSUL_CLIENT_BASE_URI": "http://127.0.0.1:8500"
|
||||
}
|
||||
}
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
alengo_webspace_settings:
|
||||
type_select:
|
||||
- 'blocks'
|
||||
- 'category'
|
||||
- 'categories'
|
||||
- 'collection'
|
||||
- 'collections'
|
||||
- 'contact'
|
||||
- 'contacts'
|
||||
- 'date'
|
||||
- 'dateTime'
|
||||
- 'event'
|
||||
- 'media'
|
||||
- 'medias'
|
||||
- 'account'
|
||||
- 'accounts'
|
||||
- 'page'
|
||||
- 'pages'
|
||||
- 'snippet'
|
||||
- 'snippets'
|
||||
- 'string' # default type
|
||||
- 'tags'
|
||||
- 'time'
|
||||
- 'textArea'
|
||||
- 'textEditor'
|
||||
-45
@@ -1,45 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<properties xmlns="http://schemas.sulu.io/template/template"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
xsi:schemaLocation="http://schemas.sulu.io/template/template http://schemas.sulu.io/template/template-1.0.xsd">
|
||||
|
||||
<block name="dataBlocks">
|
||||
<types>
|
||||
<type name="singleMediaSelection">
|
||||
<meta>
|
||||
<title>alengo_webspace_settings.media</title>
|
||||
</meta>
|
||||
|
||||
<properties>
|
||||
<property name="singleMediaSelection" type="single_media_selection">
|
||||
<tag name="sulu.block_preview" priority="512"/>
|
||||
</property>
|
||||
</properties>
|
||||
</type>
|
||||
<type name="mediaSelection">
|
||||
<meta>
|
||||
<title>alengo_webspace_settings.medias</title>
|
||||
</meta>
|
||||
|
||||
<properties>
|
||||
<property name="mediaSelection" type="media_selection">
|
||||
<tag name="sulu.block_preview" priority="512"/>
|
||||
</property>
|
||||
</properties>
|
||||
</type>
|
||||
<type name="textEditor">
|
||||
<meta>
|
||||
<title>alengo_webspace_settings.textEditor</title>
|
||||
</meta>
|
||||
|
||||
<properties>
|
||||
<property name="textEditor" type="text_editor">
|
||||
<tag name="sulu.block_preview" priority="1024"/>
|
||||
</property>
|
||||
</properties>
|
||||
</type>
|
||||
</types>
|
||||
</block>
|
||||
|
||||
</properties>
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Alengo\\Bundle\\AlengoWebspaceSettingsBundle\\AlengoWebspaceSettingsBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
* The <fg=green>AlengoWebspaceSettingsBundle</> for Sulu CMS is almost ready:
|
||||
1. Configure your types in config/packages/alengo_webspace_settings.yaml
|
||||
2. Configure your blocks if needed in config/templates/settings/webspace_settings_blocks.xml.
|
||||
|
||||
* <fg=blue>Read</> the documentation at <comment>https://github.com/alengodev/alengoWebspaceSettingsBundle/blob/main/README.md</>
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
alengo_webspace_settings:
|
||||
type_select:
|
||||
- 'blocks'
|
||||
- 'category'
|
||||
- 'categories'
|
||||
- 'checkbox'
|
||||
- 'collection'
|
||||
- 'collections'
|
||||
- 'contact'
|
||||
- 'contacts'
|
||||
- 'date'
|
||||
- 'dateTime'
|
||||
- 'event'
|
||||
- 'media'
|
||||
- 'medias'
|
||||
- 'account'
|
||||
- 'accounts'
|
||||
- 'page'
|
||||
- 'pages'
|
||||
- 'snippet'
|
||||
- 'snippets'
|
||||
- 'string' # default type
|
||||
- 'tags'
|
||||
- 'time'
|
||||
- 'textArea'
|
||||
- 'textEditor'
|
||||
-45
@@ -1,45 +0,0 @@
|
||||
<?xml version="1.0" ?>
|
||||
<properties xmlns="http://schemas.sulu.io/template/template"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||
xsi:schemaLocation="http://schemas.sulu.io/template/template http://schemas.sulu.io/template/template-1.0.xsd">
|
||||
|
||||
<block name="dataBlocks">
|
||||
<types>
|
||||
<type name="singleMediaSelection">
|
||||
<meta>
|
||||
<title>alengo_webspace_settings.media</title>
|
||||
</meta>
|
||||
|
||||
<properties>
|
||||
<property name="singleMediaSelection" type="single_media_selection">
|
||||
<tag name="sulu.block_preview" priority="512"/>
|
||||
</property>
|
||||
</properties>
|
||||
</type>
|
||||
<type name="mediaSelection">
|
||||
<meta>
|
||||
<title>alengo_webspace_settings.medias</title>
|
||||
</meta>
|
||||
|
||||
<properties>
|
||||
<property name="mediaSelection" type="media_selection">
|
||||
<tag name="sulu.block_preview" priority="512"/>
|
||||
</property>
|
||||
</properties>
|
||||
</type>
|
||||
<type name="textEditor">
|
||||
<meta>
|
||||
<title>alengo_webspace_settings.textEditor</title>
|
||||
</meta>
|
||||
|
||||
<properties>
|
||||
<property name="textEditor" type="text_editor">
|
||||
<tag name="sulu.block_preview" priority="1024"/>
|
||||
</property>
|
||||
</properties>
|
||||
</type>
|
||||
</types>
|
||||
</block>
|
||||
|
||||
</properties>
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Alengo\\Bundle\\AlengoWebspaceSettingsBundle\\AlengoWebspaceSettingsBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
* The <fg=green>AlengoWebspaceSettingsBundle</> for Sulu CMS is almost ready:
|
||||
1. Configure your types in config/packages/alengo_webspace_settings.yaml
|
||||
2. Configure your blocks if needed in config/templates/settings/webspace_settings_blocks.xml.
|
||||
|
||||
* <fg=blue>Read</> the documentation at <comment>https://github.com/alengodev/alengoWebspaceSettingsBundle/blob/main/README.md</>
|
||||
@@ -1,4 +0,0 @@
|
||||
alexandre_evc:
|
||||
api_id: '%env(EVC_API)%'
|
||||
username: '%env(EVC_USERNAME)%'
|
||||
password: '%env(EVC_PASSWORD)%'
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Alexandre\\EvcBundle\\AlexandreEvcBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"EVC_API": "Enter the api version provided by evc.de support",
|
||||
"EVC_USERNAME": "Enter your reseller account number",
|
||||
"EVC_PASSWORD": "Enter your api password, not the password to connect on evc.de website"
|
||||
}
|
||||
}
|
||||
-19
@@ -1,19 +0,0 @@
|
||||
alex_geno_phone_verification:
|
||||
storage:
|
||||
driver: redis # redis || mongodb
|
||||
redis:
|
||||
connection: default
|
||||
mongodb:
|
||||
connection: default
|
||||
sender:
|
||||
transport: vonage
|
||||
manager:
|
||||
otp:
|
||||
length: '%env(int:PHONE_VERIFICATION_OTP_LENGTH)%'
|
||||
rate_limits:
|
||||
initiate: #for every 'to' no more than 'count' initiations over 'period_secs' seconds
|
||||
period_secs: '%env(int:PHONE_VERIFICATION_RATE_LIMIT_INITIATE_PERIOD_SECS)%'
|
||||
count: '%env(int:PHONE_VERIFICATION_RATE_LIMIT_INITIATE_COUNT)%'
|
||||
complete: #for every 'to' no more than 'count' failed completions over 'period_secs' seconds
|
||||
period_secs: '%env(int:PHONE_VERIFICATION_RATE_LIMIT_COMPLETE_PERIOD_SECS)%' # this is also the expiration period for OTP
|
||||
count: '%env(int:PHONE_VERIFICATION_RATE_LIMIT_COMPLETE_COUNT)%'
|
||||
@@ -1,8 +0,0 @@
|
||||
phone_verification_initiate:
|
||||
path: /phone-verification/initiate/{to}
|
||||
controller: AlexGeno\PhoneVerificationBundle\Controller\PhoneVerificationController::initiate
|
||||
methods: POST
|
||||
phone_verification_complete:
|
||||
path: /phone-verification/complete/{to}/{otp}
|
||||
controller: AlexGeno\PhoneVerificationBundle\Controller\PhoneVerificationController::complete
|
||||
methods: POST
|
||||
@@ -1,27 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"AlexGeno\\PhoneVerificationBundle\\AlexGenoPhoneVerificationBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"#0": "1000..9999",
|
||||
"PHONE_VERIFICATION_OTP_LENGTH": "4",
|
||||
"#1": "for every 'to' no more than 10 initiations over 24 hours",
|
||||
"PHONE_VERIFICATION_RATE_LIMIT_INITIATE_PERIOD_SECS": "86400",
|
||||
"PHONE_VERIFICATION_RATE_LIMIT_INITIATE_COUNT": "10",
|
||||
"#2": "for every 'to' no more than 5 failed completions over 5 minutes",
|
||||
"PHONE_VERIFICATION_RATE_LIMIT_COMPLETE_PERIOD_SECS": "300",
|
||||
"PHONE_VERIFICATION_RATE_LIMIT_COMPLETE_COUNT": "5"
|
||||
},
|
||||
"add-lines": [
|
||||
{
|
||||
"file": "config/packages/snc_redis.yaml",
|
||||
"position": "after_target",
|
||||
"warn_if_missing": true,
|
||||
"target": " clients:",
|
||||
"content": " default:\n type: predis\n alias: default\n dsn: \"%env(REDIS_URL)%\""
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
# RussianTextBundle configuration
|
||||
# See https://github.com/alexivanou/russian-text-bundle for documentation
|
||||
russian_text:
|
||||
# All services are enabled by default.
|
||||
# Set any to false to disable unused functionality.
|
||||
enable_pluralizer: true
|
||||
enable_number_speller: true
|
||||
enable_money_speller: true
|
||||
enable_name_inflector: true
|
||||
enable_noun_decliner: true
|
||||
enable_adjective_decliner: true
|
||||
enable_geo_inflector: true
|
||||
enable_time_speller: true
|
||||
enable_twig_plural: true
|
||||
enable_twig_numeral: true
|
||||
enable_twig_name: true
|
||||
enable_twig_declension: true
|
||||
enable_twig_time: true
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"AlexIvanou\\RussianTextBundle\\AlexIvanouRussianTextBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
RussianTextBundle installed!
|
||||
|
||||
Available Twig filters: pluralize, cardinal, ordinal, spell_money, inflect_name, noun_case, noun_plural, adj_case, geo_case, time_ago, distance_of_time
|
||||
Available Twig functions: name_cases, detect_gender
|
||||
|
||||
See README for usage examples.
|
||||
@@ -1,3 +0,0 @@
|
||||
algolia:
|
||||
application_id: "%env(ALGOLIA_APP_ID)%"
|
||||
api_key: "%env(ALGOLIA_API_KEY)%"
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Algolia\\AlgoliaSearchBundle\\AlgoliaAlgoliaSearchBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"ALGOLIA_APP_ID": "...",
|
||||
"ALGOLIA_API_KEY": "..."
|
||||
}
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
# All available configuration can be found here:
|
||||
# https://www.algolia.com/doc/api-client/symfony/configuration/
|
||||
algolia_search:
|
||||
prefix: '%env(APP_ENV)%_'
|
||||
@@ -1,14 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Algolia\\SearchBundle\\AlgoliaSearchBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"#1": "Create a free account on www.algolia.com",
|
||||
"#2": "and get your credentials from the API Keys tab.",
|
||||
"ALGOLIA_APP_ID": "...",
|
||||
"ALGOLIA_API_KEY": "..."
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
* The Algolia/SearchBundle uses Algolia by default. Create a free
|
||||
account on http://www.algolia.com and modify your ALGOLIA_APP_ID
|
||||
and ALGOLIA_API_KEY config in <fg=green>.env</>
|
||||
|
||||
* Edit the configuration in <fg=green>config/packages/algolia_search.yaml</>
|
||||
to start indexing your data.
|
||||
|
||||
Documentation: https://www.algolia.com/doc/api-client/symfony/
|
||||
@@ -1,34 +0,0 @@
|
||||
cycle:
|
||||
dbal:
|
||||
databases:
|
||||
default:
|
||||
connection: default_connection
|
||||
|
||||
connections:
|
||||
default_connection:
|
||||
driver: mysql
|
||||
host: '%env(resolve:DB_HOST)%'
|
||||
port: '%env(int:DB_PORT)%'
|
||||
dbname: '%env(resolve:DB_NAME)%'
|
||||
user: '%env(resolve:DB_USER)%'
|
||||
password: '%env(resolve:DB_PASSWORD)%'
|
||||
charset: utf8
|
||||
|
||||
orm:
|
||||
schema:
|
||||
type: attribute
|
||||
dir: "%kernel.project_dir%/src/Entity"
|
||||
cache_dir: "%kernel.cache_dir%/cycle"
|
||||
relation:
|
||||
fk_create: false
|
||||
index_create: false
|
||||
|
||||
migration:
|
||||
directory: "%kernel.project_dir%/migrations"
|
||||
|
||||
when@test:
|
||||
cycle:
|
||||
dbal:
|
||||
connections:
|
||||
default_connection:
|
||||
dbname: 'test_%env(resolve:DB_NAME)%'
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Alms\\Bundle\\CycleBundle\\CycleBundle": [
|
||||
"all"
|
||||
]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/",
|
||||
"src/": "%SRC_DIR%/",
|
||||
"migrations/": "migrations/"
|
||||
},
|
||||
"env": {
|
||||
"DB_DRIVER": "mysql",
|
||||
"DB_HOST": "localhost",
|
||||
"DB_PORT": "3306",
|
||||
"DB_NAME": "app",
|
||||
"DB_USER": "root",
|
||||
"DB_PASSWORD": "secret"
|
||||
},
|
||||
"post-install-output": [
|
||||
" * Modify your database config in <fg=green>.env</>"
|
||||
]
|
||||
}
|
||||
@@ -1,2 +0,0 @@
|
||||
alteis_hagreed:
|
||||
token: '%env(HAGREED_TOKEN)%'
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Alteis\\HagreedBundle\\AlteisHagreedBundle": [
|
||||
"all"
|
||||
]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"env": {
|
||||
"HAGREED_TOKEN": ""
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
services:
|
||||
AmbientLink\SDK\SmartMonkeyConnection:
|
||||
arguments: ['@amnient.link_connection_settings', '%env(AMBIENT_LINK_USERNAME)%', '%env(AMBIENT_LINK_PASSWORD)%']
|
||||
|
||||
amnient.link_connection_settings:
|
||||
class: PhpMqtt\Client\ConnectionSettings
|
||||
|
||||
PhpMqtt\Client\Contracts\MQTTClient: '@PhpMqtt\Client\MQTTClient'
|
||||
PhpMqtt\Client\MQTTClient:
|
||||
arguments:
|
||||
- '%env(AMBIENT_LINK_HOST)%'
|
||||
- '%env(AMBIENT_LINK_PORT)%'
|
||||
- '%env(AMBIENT_LINK_MONKEY_ID)%'
|
||||
|
||||
AmbientLink\SDK\Mqtt\MqttAdapter:
|
||||
arguments:
|
||||
$username: '%env(AMBIENT_LINK_USERNAME)%'
|
||||
$password: '%env(AMBIENT_LINK_PASSWORD)%'
|
||||
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"env": {
|
||||
"AMBIENT_LINK_HOST": "",
|
||||
"AMBIENT_LINK_PORT": "1883",
|
||||
"AMBIENT_LINK_USERNAME": "",
|
||||
"AMBIENT_LINK_PASSWORD": "",
|
||||
"AMBIENT_LINK_MONKEY_ID": ""
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
}
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
* Your ability is almost ready:
|
||||
1. Edit <comment>src/AbilityEventSubscriber</comment> and <info>implement</info> your logic:
|
||||
|
||||
public static function getSubscribedEvents(): array
|
||||
{
|
||||
return [
|
||||
// can be found in AmbientLink\SDK\Event\
|
||||
EnterRoomEvent::NAME => 'onEnterRoom',
|
||||
];
|
||||
}
|
||||
|
||||
public function onEnterRoom(EnterRoomEvent $event): void
|
||||
{
|
||||
$roomName = $event->roomName();
|
||||
|
||||
$this->logger->debug(sprintf('Some person enters room "%s".', $roomName));
|
||||
|
||||
// @todo implement logic here
|
||||
}
|
||||
|
||||
* You can found Events in AmbientLink\SDK\Event\
|
||||
* Using Ability Command? Try <info>php bin/console ability:debug --dummy</info>
|
||||
@@ -1,42 +0,0 @@
|
||||
# Pickle Panther — YAML-driven E2E testing on top of Symfony Panther.
|
||||
#
|
||||
# Loaded in the "test" environment only: the bundle is registered for "test" in
|
||||
# config/bundles.php, so a root-level config/packages/ file would also load in
|
||||
# prod (where the bundle is absent) and Symfony would fail to boot.
|
||||
#
|
||||
# Every key below is OPTIONAL and shown with its default value — edit in place,
|
||||
# or delete what you keep at the default. Full reference & docs:
|
||||
# https://github.com/Amoifr/PicklePantherBundle
|
||||
pickle_panther:
|
||||
locale: fr # default DSL language (fr|en) — matching is bilingual anyway
|
||||
debug: false # true => a screenshot after every step (= E2E_DEBUG=1)
|
||||
scenarios_dir: '%kernel.project_dir%/tests/E2E/Scenario'
|
||||
report:
|
||||
enabled: true
|
||||
output_dir: '%kernel.project_dir%/var/pickle-panther'
|
||||
browser:
|
||||
headless: true
|
||||
chrome_args: [] # extra Chrome args appended to the defaults
|
||||
desktop:
|
||||
width: 1920
|
||||
height: 1080
|
||||
user_agent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'
|
||||
mobile:
|
||||
width: 375
|
||||
height: 812
|
||||
pixel_ratio: 3.0
|
||||
user_agent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1'
|
||||
|
||||
# Optional built-in form-login authenticator. Uncomment to enable it; leave
|
||||
# commented if your app has a custom login flow (define your own service
|
||||
# aliased to Amoifr\PicklePantherBundle\Auth\AuthenticatorInterface instead).
|
||||
# Keep credentials out of the repository — read them from environment variables.
|
||||
#auth:
|
||||
# login_path: /login
|
||||
# logout_path: /logout
|
||||
# form_selector: 'form'
|
||||
# email_field: '_username'
|
||||
# password_field: '_password'
|
||||
# roles: # map a scenario role name to its credentials
|
||||
# admin: { email: '%env(E2E_ADMIN_EMAIL)%', password: '%env(E2E_ADMIN_PASSWORD)%' }
|
||||
# user: { email: '%env(E2E_USER_EMAIL)%', password: '%env(E2E_USER_PASSWORD)%' }
|
||||
@@ -1,18 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Amoifr\\PicklePantherBundle\\PicklePantherBundle": ["test"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
},
|
||||
"post-install-output": [
|
||||
" * The bundle is enabled in the <comment>test</> environment only.",
|
||||
" Tune <comment>config/packages/test/pickle_panther.yaml</> as needed (every key is optional).",
|
||||
"",
|
||||
" * <comment>To actually run E2E scenarios you need a chromedriver</>",
|
||||
" (<comment>composer require --dev dbrekelmans/bdi && vendor/bin/bdi detect drivers</>)",
|
||||
" <comment>or a browser provided via Docker.</>",
|
||||
"",
|
||||
" * Docs: <href=https://github.com/Amoifr/PicklePantherBundle>https://github.com/Amoifr/PicklePantherBundle</>"
|
||||
]
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
amzs_random:
|
||||
auto_connect: true
|
||||
default_connection: mysql
|
||||
@@ -1,3 +0,0 @@
|
||||
_admin_amzs_random_bundle:
|
||||
resource: "@AmzsRandomBundle/Resources/config/routing.yaml"
|
||||
prefix: admin/menu
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Amzs\\RandomBundle\\AmzsRandomBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
omnipay:
|
||||
success_url: '/profile/history_orders'
|
||||
fail_url: '/'
|
||||
return_url: '/omnipay_return'
|
||||
notify_url: '/omnipay_notify'
|
||||
cancel_url: '/omnipay_cancel'
|
||||
data_keys:
|
||||
paymentId: ['orderNumber']
|
||||
customerEmail: ['customerNumber']
|
||||
gateways: null
|
||||
@@ -1,3 +0,0 @@
|
||||
omnipay:
|
||||
resource: "@OmnipayBundle/Resources/config/routing.yml"
|
||||
prefix: /
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Andchir\\OmnipayBundle\\OmnipayBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
comments:
|
||||
comment_class: App\MainBundle\Document\Comment
|
||||
status_default: pending
|
||||
@@ -1,3 +0,0 @@
|
||||
comments:
|
||||
resource: '@CommentsBundle'
|
||||
type: annotation
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"Andchir\\CommentsBundle\\CommentsBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
}
|
||||
}
|
||||
@@ -1,72 +0,0 @@
|
||||
# -----------------------------------------------------------------------------
|
||||
# AndrewGos Telegram Bot Bundle - Default Configuration
|
||||
# -----------------------------------------------------------------------------
|
||||
# This file was generated by the AndrewGos Telegram Bot Bundle recipe.
|
||||
# It provides a solid foundation for your first Telegram bot.
|
||||
#
|
||||
# ❗️ YOUR NEXT STEPS:
|
||||
# 1. Set your bot's token in the .env file:
|
||||
# TELEGRAM_BOT_TOKEN="123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
|
||||
#
|
||||
# 2. Create the handler and checker classes referenced below, for example:
|
||||
# src/Telegram/Handler/StartHandler.php
|
||||
# src/Telegram/Checker/CommandChecker.php
|
||||
# src/Telegram/Handler/DefaultMessageHandler.php
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
andrew_gos_telegram_bot:
|
||||
bots:
|
||||
# 🤖 This is the unique name for your bot.
|
||||
# You'll use this name in console commands, e.g., `php bin/console andrew-gos:telegram-bot:listen default_bot`
|
||||
# default_bot:
|
||||
# 🏭 The factory defines how the Telegram API client is created.
|
||||
# factory:
|
||||
# 'getUpdates' is a shortcut for the long-polling factory. It's perfect for
|
||||
# getting started quickly with the `listen` command.
|
||||
# For production, you will likely switch to webhooks using the 'default' factory.
|
||||
# method: 'getUpdates'
|
||||
# arguments:
|
||||
# ✅ Best Practice: Never hardcode secrets!
|
||||
# This reads the token from your .env file.
|
||||
# $token: '%env(string:TELEGRAM_BOT_TOKEN)%'
|
||||
|
||||
# 🔌 Plugins are services that run on EVERY update before handlers.
|
||||
# They are great for logging, analytics, or session management.
|
||||
# Uncomment this section to enable a request logger.
|
||||
# plugins:
|
||||
# - class: App\Telegram\Plugin\RequestLoggerPlugin
|
||||
# arguments:
|
||||
# # This injects the default Symfony logger for the 'telegram' channel.
|
||||
# $logger: '@monolog.logger.telegram'
|
||||
|
||||
# 🔄 Handlers contain the core logic of your bot.
|
||||
# They are checked in order of priority (higher numbers first).
|
||||
# The first handler whose 'checker' passes will be executed.
|
||||
# handlers:
|
||||
# Handler for the '/start' command. It has a high priority.
|
||||
# -
|
||||
# The checker decides if the handler should run for the current update.
|
||||
# checker:
|
||||
# class: App\Telegram\Checker\CommandChecker
|
||||
# arguments:
|
||||
# $command: '/start'
|
||||
|
||||
# The handler contains the actual logic to execute.
|
||||
# handler: App.Telegram.Handler.StartHandler
|
||||
|
||||
# Middlewares run after the checker but before the handler.
|
||||
# Useful for authentication, rate limiting, etc.
|
||||
# middlewares:
|
||||
# - App\Telegram\Middleware\UserRateLimiterMiddleware
|
||||
|
||||
# Higher priority means this handler is checked before others.
|
||||
# priority: 10
|
||||
|
||||
# A fallback handler for any message not caught by the handlers above.
|
||||
# When a 'checker' is not specified, it defaults to `AnyChecker`,
|
||||
# -
|
||||
# which always passes. This makes it a perfect "catch-all".
|
||||
# handler: App\Telegram\Handler\DefaultMessageHandler
|
||||
|
||||
# A negative priority ensures this runs last.
|
||||
# priority: -10
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"bundles": {
|
||||
"AndrewGos\\TelegramBotBundle\\AndrewGosTelegramBotBundle": ["all"]
|
||||
},
|
||||
"copy-from-recipe": {
|
||||
"config/": "%CONFIG_DIR%/"
|
||||
}
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
services:
|
||||
anezi_twig.locale_extension:
|
||||
class: Anezi\Locale\Twig\Extension\LocaleExtension
|
||||
public: false
|
||||
arguments:
|
||||
$locales: ['fr', 'en'] # Edit here for your needs.
|
||||
tags:
|
||||
- { name: twig.extension }
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user