{"id":20282225,"url":"https://github.com/teqneers/ext-direct-bundle","last_synced_at":"2025-05-07T18:31:02.341Z","repository":{"id":35188661,"uuid":"39446713","full_name":"teqneers/ext-direct-bundle","owner":"teqneers","description":"A Symfony 2 bundle to integrate Sencha Ext JS Ext.direct into a Symfony 2 application","archived":true,"fork":false,"pushed_at":"2024-03-18T11:48:08.000Z","size":210,"stargazers_count":3,"open_issues_count":2,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-11T08:39:18.825Z","etag":null,"topics":["bundle","ext-direct","extjs","php","php-library","sencha","symfony","symfony-bundle"],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/teqneers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-21T13:25:23.000Z","updated_at":"2025-03-18T12:03:46.000Z","dependencies_parsed_at":"2022-08-05T13:34:41.307Z","dependency_job_id":null,"html_url":"https://github.com/teqneers/ext-direct-bundle","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teqneers%2Fext-direct-bundle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teqneers%2Fext-direct-bundle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teqneers%2Fext-direct-bundle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/teqneers%2Fext-direct-bundle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/teqneers","download_url":"https://codeload.github.com/teqneers/ext-direct-bundle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252933966,"owners_count":21827612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bundle","ext-direct","extjs","php","php-library","sencha","symfony","symfony-bundle"],"created_at":"2024-11-14T14:08:35.966Z","updated_at":"2025-05-07T18:31:01.875Z","avatar_url":"https://github.com/teqneers.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ext-direct-bundle\n\nA Symfony bundle to integrate Sencha Ext JS Ext.direct into a Symfony application\n\n[![Build Status](https://github.com/teqneers/ext-direct-bundle/actions/workflows/php.yml/badge.svg)](https://github.com/teqneers/ext-direct-bundle/actions/workflows/php.yml)\n\n## Installation\n\nYou can install this bundle using composer\n\n    composer require teqneers/ext-direct-bundle\n\nor add the package to your composer.json file directly.\n\nAfter you have installed the package, you just need to add the bundle to your AppKernel.php file:\n\n```php\n// in AppKernel::registerBundles()\n$bundles = array(\n    // ...\n    new TQ\\Bundle\\ExtDirectBundle\\TQExtDirectBundle(),\n    // ...\n);\n```\n\n## Configuration\n\nThe *ext-direct-bundle* requires at least one endpoint to be configured.\n\n    # Default configuration for \"TQExtDirectBundle\"\n    tq_ext_direct:\n        debug:                true\n        cache:                file\n        file_cache_dir:       '%kernel.cache_dir%/tq_ext_direct'\n        validate_arguments:   true\n        strict_validation:    true\n        convert_arguments:    true\n        convert_result:       true\n        endpoints:            # Required\n\n            # Prototype\n            id:\n                descriptor:           Ext.app.REMOTING_API\n                namespace:            Ext.global\n                auto_discover:        true\n                all_bundles:          true\n                bundles:              []\n                directories:          []\n\n`auto_discover` enables auto-discovering service classes in bundles available to the application. If paired with\n`all_bundles` all available bundles are checked, otherwise only bundles mentioned in the `bundles` array are checked.\nFor bundles it is required to place service classes into an `ExtDirect` directory inside the bundle root directory.\nAdditionally (or only - if `auto_discover` is disabled) individual `directories` can be set to be included in the\nservice discovery process. Services are discovered recursively starting with each configured directory.\n\nBecause the bundle provides its own controller to serve the API description and handle *Ext.direct* reqeusts, you also\nneed to configure your routing to include the bundle routes at a given prefix. Edit your `app/config/routing.yml`:\n\n    # ...\n    ext_app:\n        resource: \"@TQExtDirectBundle/Resources/config/routing.yml\"\n        prefix: /\n    # ...\n\nThe most minimalistic configuration looks like:\n\n    tq_ext_direct:\n        endpoints:\n            api: ~\n\nThis enables Ext direct services in all available bundles via the `api` endpoint.\n\n## Usage\n\nUsing the Twig extension provided by the bundle you can easily integrate the *Ext.direct* API definition into your\napplication templates.\n\n```twig\n\u003c!DOCTYPE HTML\u003e\n\u003chtml lang=\"en\"\u003e\n\u003chead\u003e\n    \u003cmeta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"\u003e\n    \u003cmeta charset=\"UTF-8\"\u003e\n    \u003cmeta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"/\u003e\n    \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no\"\u003e\n    \u003ctitle\u003eWelcome!\u003c/title\u003e\n\n    \u003c!-- Ext JS bootstrap, etc. --\u003e\n\n     \u003cscript type=\"text/javascript\" src=\"{{ extDirectApiPath('api') }}\"\u003e\u003c/script\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\n## License\n\nThe MIT License (MIT)\n\nCopyright (c) 2015 TEQneers GmbH \u0026 Co. KG\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated\ndocumentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit\npersons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the\nSoftware.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE\nWARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\nOTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteqneers%2Fext-direct-bundle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteqneers%2Fext-direct-bundle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteqneers%2Fext-direct-bundle/lists"}