{"id":15277472,"url":"https://github.com/tattersoftware/codeigniter4-exports","last_synced_at":"2025-04-12T15:10:20.267Z","repository":{"id":35052835,"uuid":"199911838","full_name":"tattersoftware/codeigniter4-exports","owner":"tattersoftware","description":"Modular file exports, for CodeIgniter 4","archived":false,"fork":false,"pushed_at":"2024-01-17T23:28:05.000Z","size":127,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-04-11T16:07:01.606Z","etag":null,"topics":[],"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/tattersoftware.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":"SECURITY.md","support":null}},"created_at":"2019-07-31T18:49:43.000Z","updated_at":"2023-06-15T17:55:16.000Z","dependencies_parsed_at":"2022-09-16T01:34:44.440Z","dependency_job_id":null,"html_url":"https://github.com/tattersoftware/codeigniter4-exports","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tattersoftware%2Fcodeigniter4-exports","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tattersoftware%2Fcodeigniter4-exports/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tattersoftware%2Fcodeigniter4-exports/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tattersoftware%2Fcodeigniter4-exports/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tattersoftware","download_url":"https://codeload.github.com/tattersoftware/codeigniter4-exports/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248586233,"owners_count":21128997,"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":[],"created_at":"2024-09-30T11:06:42.096Z","updated_at":"2025-04-12T15:10:20.246Z","avatar_url":"https://github.com/tattersoftware.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tatter\\Exports\nModular file exports, for CodeIgniter 4\n\n[![](https://github.com/tattersoftware/codeigniter4-exports/workflows/PHPUnit/badge.svg)](https://github.com/tattersoftware/codeigniter4-exports/actions/workflows/test.yml)\n[![](https://github.com/tattersoftware/codeigniter4-exports/workflows/PHPStan/badge.svg)](https://github.com/tattersoftware/codeigniter4-exports/actions/workflows/analyze.yml)\n[![](https://github.com/tattersoftware/codeigniter4-exports/workflows/Deptrac/badge.svg)](https://github.com/tattersoftware/codeigniter4-exports/actions/workflows/inspect.yml)\n[![Coverage Status](https://coveralls.io/repos/github/tattersoftware/codeigniter4-exports/badge.svg?branch=develop)](https://coveralls.io/github/tattersoftware/codeigniter4-exports?branch=develop)\n\n## Quick Start\n\n1. Install with Composer: `\u003e composer require tatter/exports`\n2. Load a handler: `$handler = new \\Tatter\\Exports\\Exports\\DownloadHandler($myFile);`\n3. Run the export: `return $handler-\u003eprocess();`\n\n## Description\n\n**Exports** defines small classes that can be used to direct files to various destinations.\nEach class is a handler discoverable by `Tatter\\Handlers` with a distinct set of attributes\nand its own `doProcess()` method to do the actual export. Think of an export as something\nyou might see on a \"share menu\" from a mobile device: supported destinations for a file type.\n\n## Installation\n\nInstall easily via Composer to take advantage of CodeIgniter 4's autoloading capabilities\nand always be up-to-date:\n```bash\ncomposer require tatter/exports\n```\n\nOr, install manually by downloading the source files and adding the directory to\n**app/Config/Autoload.php**.\n\n## Usage\n\nYou may load Export handlers directly, or use the `ExportersFactory` to locate them based\non their attributes:\n```php\n// Loaded directly\n$handler = new \\Tatter\\Exports\\Exporters\\DownloadExporter($myFile);`\n\n// Located by Handlers\n$class    = ExporterFactory::find('download');\n$exporter = new $class($myFile);\n```\n\nEvery handler supports basic setters to provide your file and optional overrides for file\nmetadata:\n```php\n$exporter-\u003esetFile('/path/to/file');\n// or...\n$file = new \\CodeIgniter\\Files\\File('/path/to/file');\n$exporter-\u003esetFile($file);\n\n$exporter-\u003esetFileName('RenameFileDuringExport.bam');\n$exporter-\u003esetFileMime('overriding/mimetype');\n```\n\nTo execute the export, call its `process()` method, which will return a `ResponseInterface`:\n```php\nuse Tatter\\Exports\\ExporterFactory;\n\nclass MyController\n{\n    public function previewFile($path)\n    {\n        $class    = ExporterFactory::find('preview');\n        $exporter = new $class();\n\n        return $exporter-\u003esetFile($path)-\u003eprocess();\n    }\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftattersoftware%2Fcodeigniter4-exports","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftattersoftware%2Fcodeigniter4-exports","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftattersoftware%2Fcodeigniter4-exports/lists"}