{"id":14987413,"url":"https://github.com/tattersoftware/codeigniter4-frontend","last_synced_at":"2025-06-29T13:37:46.831Z","repository":{"id":42893595,"uuid":"368866860","full_name":"tattersoftware/codeigniter4-frontend","owner":"tattersoftware","description":"Opinionated suite of frontend tech for CodeIgniter 4","archived":false,"fork":false,"pushed_at":"2024-07-09T19:42:56.000Z","size":141,"stargazers_count":12,"open_issues_count":3,"forks_count":4,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-05-16T23:35:27.219Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-19T12:47:09.000Z","updated_at":"2024-05-30T03:03:51.000Z","dependencies_parsed_at":"2024-09-24T15:54:25.395Z","dependency_job_id":null,"html_url":"https://github.com/tattersoftware/codeigniter4-frontend","commit_stats":{"total_commits":50,"total_committers":2,"mean_commits":25.0,"dds":0.09999999999999998,"last_synced_commit":"ca9e3b13910257e0ebcfa6d0ae8d0583ede41fb2"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/tattersoftware/codeigniter4-frontend","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tattersoftware%2Fcodeigniter4-frontend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tattersoftware%2Fcodeigniter4-frontend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tattersoftware%2Fcodeigniter4-frontend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tattersoftware%2Fcodeigniter4-frontend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tattersoftware","download_url":"https://codeload.github.com/tattersoftware/codeigniter4-frontend/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tattersoftware%2Fcodeigniter4-frontend/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260340714,"owners_count":22994528,"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-24T14:14:34.786Z","updated_at":"2025-06-29T13:37:46.787Z","avatar_url":"https://github.com/tattersoftware.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tatter\\Frontend\n\nOpinionated suite of frontend tech for CodeIgniter 4\n\n[![](https://github.com/tattersoftware/codeigniter4-frontend/workflows/PHPUnit/badge.svg)](https://github.com/tattersoftware/codeigniter4-frontend/actions/workflows/test.yml)\n[![](https://github.com/tattersoftware/codeigniter4-frontend/workflows/PHPStan/badge.svg)](https://github.com/tattersoftware/codeigniter4-frontend/actions/workflows/analyze.yml)\n[![](https://github.com/tattersoftware/codeigniter4-frontend/workflows/Deptrac/badge.svg)](https://github.com/tattersoftware/codeigniter4-frontend/actions/workflows/inspect.yml)\n[![Coverage Status](https://coveralls.io/repos/github/tattersoftware/codeigniter4-frontend/badge.svg?branch=develop)](https://coveralls.io/github/tattersoftware/codeigniter4-frontend?branch=develop)\n\n## Description\n\nThis library leverages [Tatter\\Assets](https://github.com/tattersoftware/codeigniter4-assets)\nalongside the framework's [Publisher Library](https://codeigniter4.github.io/CodeIgniter4/libraries/publisher.html#)\nto automate asset discovery and HTML tag injection for an opinionated selection of frontend solutions.\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/frontend\n```\n\nOr, install manually by downloading the source files and adding the directory to\n**app/Config/Autoload.php**.\n\nOnce the files are downloaded and included in the autoload run the framework's `publish`\ncommand to inject all assets into your front controller path:\n```bash\nphp spark publish\n```\n\n## Included Solutions\n\n### Asset Libraries\n\n* [AdminLTE](https://adminlte.io) - Admin dashboard template\n* [Bootstrap](https://getbootstrap.com) - Mobile-first front-end CSS framework directed at responsive web development\n* [DataTables](https://datatables.net) - To enhance the accessibility of data in HTML tables\n* [FontAwesome](https://fontawesome.com) - Popular icon set and toolkit for vector icons and social logos\n* [jQuery](https://jquery.com) - A fast, small, and feature-rich JavaScript library\n\n### Support Libraries\n\n* [League\\CommonMark](https://packagist.org/packages/league/commonmark)\n* [Tatter\\Alerts](https://packagist.org/packages/tatter/alerts)\n* [Tatter\\Assets](https://packagist.org/packages/tatter/assets)\n* [Tatter\\Layouts](https://packagist.org/packages/tatter/layouts)\n* [Tatter\\Menus](https://packagist.org/packages/tatter/menus)\n* [Tatter\\Themes](https://packagist.org/packages/tatter/themes)\n\n\u003e *Note: jQuery is included because some other libraries depend on it; should those libraries\n\u003e remove it as a dependency or be removed themselve then jQuery will no longer be included.\n\n## Versioning\n\nThe intent is to maintain two major versions of this library for an indefinite amount of\ntime until AdminLTE 4 is fully released and stable for production use. The core differences\nwill be around the dependency stack for AdminLTE, Bootstrap, and jQuery.\n\n| Library version | Bootstrap version  | AdminLTE version  | jQuery |\n| --------------: | -----------------: | ----------------: | :----: |\n| `1.x`           | `4.x`              | `3.x`             | Yes    |\n| `2.x`           | `5.x`              | `4.x`             | No     |\n\n## Configuration\n\n*For full configuration details see the [Assets docs](https://github.com/tattersoftware/codeigniter4-assets).*\n\nEnable the `AssetsFilters` on any \"after\" routes where you want tags applied. To apply\nthem everywhere simply add to `$globals`. **app/Config/Filters.php**:\n```php\n    /**\n     * List of filter aliases that are always\n     * applied before and after every request.\n     *\n     * @var array\n     */\n    public $globals = [\n        'before' =\u003e [\n            // 'honeypot',\n            // 'csrf',\n        ],\n        'after'  =\u003e [\n            'assets',\n        ],\n    ];\n```\n\nThen create or edit your `Assets` config file and add each bundle for the routes where you\nwant them to be applied. **app/Config/Assets.php**:\n```php\n\u003c?php\n\nnamespace Config;\n\nuse Tatter\\Frontend\\Bundles\\AdminLTEBundle;\nuse Tatter\\Frontend\\Bundles\\BootstrapBundle;\nuse Tatter\\Frontend\\Bundles\\FontAwesomeBundle;\n\nclass Assets extends \\Tatter\\Assets\\Config\\Assets\n{\n    public $routes = [\n        '*' =\u003e [\n            BootstrapBundle::class,\n            FontAwesomeBundle::class,\n        ],\n        'admin/*' =\u003e [\n        \tAdminLTEBundle::class,\n        \tChartJSBundle::class,\n        ],\n        'files/upload' =\u003e [\n        \tDropzoneJSBundle::class,\n        ]\n    ];\n}\n```\n\nNote that each Bundle includes its dependency (e.g. AdminLTE includes Bootstrap, Bootstrap\nincludes jQuery), so while there is no harm in repeating assets it is also unnecessary.\nThis does not extend to optional plugins, e.g. if you want to use FontAwesome in AdminLTE\nyou will need to include both.\n\n## Testing\n\nThis library includes a PHPUnit extension classes in **src/Test/** to assist with testing\nvendor-sourced Publishers. `Tatter\\Assets` has a similar test case for Bundles. These two\nclasses are used to test the files from this library but are also available for other projects\nthat use `Tatter\\Frontend`. To test your own classes simply extend the appropriate test case\nand add a data provider method with your class name and criteria to meet. See the test files\nin **tests/** for examples.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftattersoftware%2Fcodeigniter4-frontend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftattersoftware%2Fcodeigniter4-frontend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftattersoftware%2Fcodeigniter4-frontend/lists"}