{"id":18482868,"url":"https://github.com/spaze/phpcs-phar","last_synced_at":"2026-02-27T03:02:08.485Z","repository":{"id":219205182,"uuid":"748446435","full_name":"spaze/phpcs-phar","owner":"spaze","description":"PHP_CodeSniffer phar releases, automated and always up-to-date","archived":false,"fork":false,"pushed_at":"2025-11-23T17:42:57.000Z","size":1067,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-23T19:22:16.435Z","etag":null,"topics":["automation","cli","coding-standards","php","phpcbf","phpcs","psr1","psr12","psr2","qa","static-analysis"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"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/spaze.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-26T01:29:07.000Z","updated_at":"2025-11-23T17:42:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"a89a3c8b-a273-43a1-83c7-623c65f13292","html_url":"https://github.com/spaze/phpcs-phar","commit_stats":null,"previous_names":["spaze/phpcs-phar"],"tags_count":23,"template":false,"template_full_name":null,"purl":"pkg:github/spaze/phpcs-phar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spaze%2Fphpcs-phar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spaze%2Fphpcs-phar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spaze%2Fphpcs-phar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spaze%2Fphpcs-phar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spaze","download_url":"https://codeload.github.com/spaze/phpcs-phar/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spaze%2Fphpcs-phar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29883111,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T23:51:21.483Z","status":"online","status_checked_at":"2026-02-27T02:00:06.759Z","response_time":57,"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":["automation","cli","coding-standards","php","phpcbf","phpcs","psr1","psr12","psr2","qa","static-analysis"],"created_at":"2024-11-06T12:31:28.636Z","updated_at":"2026-02-27T03:02:08.466Z","avatar_url":"https://github.com/spaze.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PHP_CodeSniffer phar releases, automated and always up-to-date\n\n[![Create a phar release](https://github.com/spaze/phpcs-phar/actions/workflows/create-release.yml/badge.svg)](https://github.com/spaze/phpcs-phar/actions/workflows/create-release.yml)\n[![PHP Tests](https://github.com/spaze/phpcs-phar/actions/workflows/php.yml/badge.svg)](https://github.com/spaze/phpcs-phar/actions/workflows/php.yml)\n\nThis repo contains phar releases of [PHPCSStandards/PHP_CodeSniffer](https://github.com/PHPCSStandards/PHP_CodeSniffer).\n\nThe files are downloaded from the [PHP_CodeSniffer release pages](https://github.com/PHPCSStandards/PHP_CodeSniffer/releases),\nand if changed, they're commited and a release is created with the same version number as the upstream release.\n\nThe whole thing is powered by a GitHub Actions [workflow](.github/workflows/create-release.yml).\n\nI have created this for my personal usage to overcome the [performance issues](https://github.com/microsoft/WSL/discussions/9412) of the 9P filesystem as used by WSL2.\nThe PHPCSStandards organization is also planning to [create a Composer phar release](https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/318) so this repository will cease to exist one day,\neither when the official Composer phar is released, or when the 9P performace is sufficient, or when I retire. Consider yourself warned.\n\n## Installation\nInstall with [Composer](https://getcomposer.org/):\n```\ncomposer require --dev spaze/phpcs-phar\n```\n\n## Installing coding standards\nThe phar releases in this repository do not work with the PHP_CodeSniffer Standards Composer Installer Plugin (the [`dealerdirect/phpcodesniffer-composer-installer`](https://packagist.org/packages/dealerdirect/phpcodesniffer-composer-installer) package).\nBe warned that this package even replaces the installer plugin in its `composer.json`.\n\nThere are several reasons for that:\n1. The installer plugin [looks](https://github.com/PHPCSStandards/composer-installer/blob/290bcb677628f4d829f64a4337bf0b9237238f0b/src/Plugin.php#L47) for a different installed package, `squizlabs/php_codesniffer` to add more standards to\n2. The plugin creates a configuration file with a relative path to the standard being installed, so the code sniffer then expects the standard to be present inside the phar file, which is not the case\n\nHowever, there are multiple different ways to install a standard. Let's say you want to add [`slevomat/coding-standard`](https://github.com/slevomat/coding-standard), you can:\n\n### Auto-install the available standards\nIf the `CodeSniffer.conf` file doesn't exist, this package will find and auto-install all available coding standards on each execution.\nThe altered configuration is not persisted, no config file will be created, because it would be removed on each package update anyway.\nThis is the recommended option emulating the Standards Composer Installer Plugin to a certain point. The performance is comparable to\nusing the installer plugin as only Composer metadata are used to find the installed coding standards.\n\n### Modify the config file\n1. In your project, run\n   ```\n   vendor/bin/phpcs --config-set installed_paths ../../slevomat/coding-standard\n   ```\n3. Locate the `CodeSniffer.conf` file in your `vendor/spaze/phpcs-phar` directory\n4. Edit the path to the installed standard and make it an absolute path, for example change\n   ```php\n   'installed_paths' =\u003e '../../slevomat/coding-standard'\n   ```\n   to\n   ```php\n   'installed_paths' =\u003e __DIR__ . '/../../slevomat/coding-standard'\n   ```\nPlease be aware that the `CodeSniffer.conf` file will be removed on each package update.\n\n### Install the standard using an absolute path\nIn your project, run\n```\nvendor/bin/phpcs --config-set installed_paths $(realpath vendor/slevomat/coding-standard)\n```\nor use any absolute path for the `installed_paths` value.\n\nPlease be aware that the `CodeSniffer.conf` file will be removed on each package update.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspaze%2Fphpcs-phar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspaze%2Fphpcs-phar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspaze%2Fphpcs-phar/lists"}