{"id":22434605,"url":"https://github.com/gewebe/tecdocbundle","last_synced_at":"2025-08-30T20:13:42.706Z","repository":{"id":62513694,"uuid":"137419293","full_name":"gewebe/TecdocBundle","owner":"gewebe","description":"This bundle integrates the Tecdoc database into Symfony.","archived":false,"fork":false,"pushed_at":"2020-01-09T18:40:33.000Z","size":71,"stargazers_count":14,"open_issues_count":0,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-08-01T14:51:30.331Z","etag":null,"topics":["database","symfony","symfony-bundle","tecdoc"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gewebe.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":"2018-06-14T23:32:03.000Z","updated_at":"2025-07-12T19:51:18.000Z","dependencies_parsed_at":"2022-11-02T13:15:43.008Z","dependency_job_id":null,"html_url":"https://github.com/gewebe/TecdocBundle","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/gewebe/TecdocBundle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gewebe%2FTecdocBundle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gewebe%2FTecdocBundle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gewebe%2FTecdocBundle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gewebe%2FTecdocBundle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gewebe","download_url":"https://codeload.github.com/gewebe/TecdocBundle/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gewebe%2FTecdocBundle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272900161,"owners_count":25012034,"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","status":"online","status_checked_at":"2025-08-30T02:00:09.474Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["database","symfony","symfony-bundle","tecdoc"],"created_at":"2024-12-05T23:09:40.704Z","updated_at":"2025-08-30T20:13:42.682Z","avatar_url":"https://github.com/gewebe.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Tecdoc Bundle\n\nThis bundle integrates the TecDoc vehicle and spare parts database into Symfony.\n\n## Features\n\n * Import fixed width files to database\n * Entity model for fixed width files and orm*\n * Automatic translations of descriptions, textmodules and images\n * REST-API for demonstration\n \n \\* For copyright reasons it's not possible to publish the full tecdoc schema. Please contact me if you need more entities or help with integration.\n\n## Installation\n\n```sh\ncomposer require gweb/tecdoc-bundle\n```\n\nNow, enable the bundle in your config/bundles.php file:\n```php\nreturn [\n    // ...\n    Gweb\\TecdocBundle\\GwebTecdocBundle::class =\u003e ['all' =\u003e true],\n];\n```\n\n## Configuration\n\nAdd new bundle configuration file to: config/packages/gweb_tecdoc.yaml\n```yaml\ngweb_tecdoc:\n    dir:\n        download:\n            reference: '%kernel.project_dir%/var/tecdoc/download/R_TAF24'\n            supplier: '%kernel.project_dir%/var/tecdoc/download/D_TAF24'\n            media: '%kernel.project_dir%/var/tecdoc/download/PIC_FILES'\n        data:\n            reference: '%kernel.project_dir%/var/tecdoc/data/reference'\n            supplier: '%kernel.project_dir%/var/tecdoc/data/supplier'\n            media: '%kernel.project_dir%/var/tecdoc/data/media'\n    translator:\n        autoload: false\n        default_locale: en\n```\n\nAdd config for database connection and entity manager\n```yaml\ndoctrine:\n    dbal:\n        connections:\n             tecdoc:\n                url:      'mysql://user:pass@localhost:3306/tecdoc'\n                driver:   'pdo_mysql'\n                charset:  UTF8\n    orm:\n        entity_managers:\n            tecdoc:\n                connection: tecdoc\n                mappings:\n                    GwebTecdocBundle: ~\n```\n\n## Import\n\nCopy zipped files to download directories and\nextract all 7z files (i.e reference data version 0118)\n```sh\nbin/console tecdoc:extract --reference=0118 --supplier\n```\n\nCreate database tables from doctrine schema\n```sh\nbin/console doctrine:schema:update --em=tecdoc --force\n```\n\nImport fixed width files to the new database (i.e use 2 worker threads)\n```sh\nbin/console tecdoc:import --threads=2\n```\n\n## Usage\nSimple Controller example\n\n```php\nnamespace App\\Controller;\n\nuse Gweb\\TecdocBundle\\Entity\\Tecdoc001DataSupplier;\nuse Gweb\\TecdocBundle\\Service\\EntityManager;\nuse Symfony\\Bundle\\FrameworkBundle\\Controller\\AbstractController;\nuse Symfony\\Component\\Routing\\Annotation\\Route;\n\nclass DemoController extends AbstractController\n{\n    private $entityManager;\n\n    public function __construct(\n        EntityManager $entityManager\n    ) {\n        $this-\u003eentityManager = $entityManager;\n    }\n\n    /**\n     * @Route(\"/demo\")\n     */\n    public function indexAction()\n    {\n        $suppliers = $this-\u003eentityManager-\u003egetRepository(Tecdoc001DataSupplier::class)-\u003efindAll();\n\n        $response = [];\n        foreach ($suppliers as $supplier) {\n            $response[] = $supplier-\u003egetMarke();\n        }\n\n        return $this-\u003ejson($response);\n    }\n}\n```\n\n## Demo API usage\n\nAdd configuration for rest bundle\n````yaml\nfos_rest:\n    param_fetcher_listener: true\n    view:\n        view_response_listener:  true\n    format_listener:\n        rules:\n            - { path: ^/tecdoc, prefer_extension: true, fallback_format: json, priorities: [ json ] }\n            - { path: ^/, stop: true }\n````\nBrowse API documentation at\n[swagger.io](http://editor.swagger.io/?url=https://raw.githubusercontent.com/gewebe/TecdocBundle/master/Api/swagger.json)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgewebe%2Ftecdocbundle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgewebe%2Ftecdocbundle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgewebe%2Ftecdocbundle/lists"}