{"id":37007205,"url":"https://github.com/avto-dev/bypass-finals","last_synced_at":"2026-01-14T00:46:34.612Z","repository":{"id":62490021,"uuid":"193645997","full_name":"avto-dev/bypass-finals","owner":"avto-dev","description":"[ABANDONED] Removes final keywords from source code on-the-fly and allows mocking of final methods and classes. It can be used together with any test tool such as PHPUnit or Mockery.","archived":true,"fork":true,"pushed_at":"2020-06-22T13:03:35.000Z","size":33,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-08-13T02:36:32.551Z","etag":null,"topics":["file-mutator","mocking","phpunit","testing"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"dg/bypass-finals","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/avto-dev.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2019-06-25T06:14:33.000Z","updated_at":"2023-01-28T14:01:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/avto-dev/bypass-finals","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/avto-dev/bypass-finals","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avto-dev%2Fbypass-finals","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avto-dev%2Fbypass-finals/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avto-dev%2Fbypass-finals/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avto-dev%2Fbypass-finals/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/avto-dev","download_url":"https://codeload.github.com/avto-dev/bypass-finals/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/avto-dev%2Fbypass-finals/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28406581,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T21:51:37.118Z","status":"ssl_error","status_checked_at":"2026-01-13T21:45:14.585Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["file-mutator","mocking","phpunit","testing"],"created_at":"2026-01-14T00:46:33.849Z","updated_at":"2026-01-14T00:46:34.596Z","avatar_url":"https://github.com/avto-dev.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003csub\u003e\u003cimg src=\"https://github.githubassets.com/images/icons/emoji/unicode/26a0.png\" width=\"22\"\u003e\u003c/sub\u003e \u003cstrong\u003eThis package is abandoned and no longer maintained\u003c/strong\u003e \u003csub\u003e\u003cimg src=\"https://github.githubassets.com/images/icons/emoji/unicode/26a0.png\" width=\"22\"\u003e\u003c/sub\u003e\u003cbr /\u003e\n    We suggests using the original \u003ca href=\"https://github.com/dg/bypass-finals\"\u003edg/bypass-finals\u003c/a\u003e package instead\u003cbr /\u003e\n    \u003cem\u003esince v1.2.0 it includes all changes from this fork\u003c/em\u003e\n\u003c/p\u003e\n\nBypass Finals\n=============\n\n[![Version][badge_packagist_version]][link_packagist]\n[![Version][badge_php_version]][link_packagist]\n[![Build Status][badge_build_status]][link_build_status]\n[![Downloads count][badge_downloads_count]][link_packagist]\n[![License][badge_license]][link_license]\n\nIntroduction\n------------\n\nRemoves final keywords from source code on-the-fly and allows mocking of final methods and classes.\nIt can be used together with any test tool such as PHPUnit, Mockery or [Nette Tester](https://tester.nette.org).\n\n\nInstallation\n------------\n\nThe recommended way to install is through Composer:\n\n```bash\ncomposer require --dev avto-dev/bypass-finals \"^1.2\"\n```\n\n\u003e Installed `composer` is required ([how to install composer][getcomposer]).\n\n\u003e You need to fix the major version of package.\n\nIt requires PHP version 5.6 and supports PHP up to 7.3.\n\n\nUsage\n-----\n\nSimply call this:\n\n```php\nDG\\BypassFinals::enable();\n```\n\nYou need to enable it before the classes you want to remove the final are loaded. So call it as soon as possible, preferably right after `vendor/autoload.php` in loaded.\n\nYou can choose to only bypass finals in specific files:\n\n```php\nDG\\BypassFinals::setWhitelist([\n    'relative/path/to/file.php'\n]);\n\nDG\\BypassFinals::enable();\n```\n\nThis gives you finer control and can solve issues with certain frameworks and libraries.\n\nIf you like it, **[please make a donation now](https://nette.org/make-donation?to=bypass-finals)**. Thank you!\n\n## Changes log\n\n[![Release date][badge_release_date]][link_releases]\n[![Commits since latest release][badge_commits_since_release]][link_commits]\n\nChanges log can be [found here][link_changes_log].\n\n## Support\n\n[![Issues][badge_issues]][link_issues]\n[![Issues][badge_pulls]][link_pulls]\n\nIf you will find any package errors, please, [make an issue][link_create_issue] in current repository.\n\n[badge_packagist_version]:https://img.shields.io/packagist/v/avto-dev/bypass-finals.svg?maxAge=180\n[badge_php_version]:https://img.shields.io/packagist/php-v/avto-dev/bypass-finals.svg?longCache=true\n[badge_build_status]:https://travis-ci.org/avto-dev/bypass-finals.svg?branch=master\n[badge_downloads_count]:https://img.shields.io/packagist/dt/avto-dev/bypass-finals.svg?maxAge=180\n[badge_license]:https://img.shields.io/packagist/l/avto-dev/bypass-finals.svg?longCache=true\n[badge_release_date]:https://img.shields.io/github/release-date/avto-dev/bypass-finals.svg?style=flat-square\u0026maxAge=180\n[badge_commits_since_release]:https://img.shields.io/github/commits-since/avto-dev/bypass-finals/latest.svg?style=flat-square\u0026maxAge=180\n[badge_issues]:https://img.shields.io/github/issues/avto-dev/bypass-finals.svg?style=flat-square\u0026maxAge=180\n[badge_pulls]:https://img.shields.io/github/issues-pr/avto-dev/bypass-finals.svg?style=flat-square\u0026maxAge=180\n[link_releases]:https://github.com/avto-dev/bypass-finals/releases\n[link_packagist]:https://packagist.org/packages/avto-dev/bypass-finals\n[link_build_status]:https://travis-ci.org/avto-dev/bypass-finals\n[link_changes_log]:https://github.com/avto-dev/bypass-finals/blob/master/CHANGELOG.md\n[link_issues]:https://github.com/avto-dev/bypass-finals/issues\n[link_create_issue]:https://github.com/avto-dev/bypass-finals/issues/new/choose\n[link_commits]:https://github.com/avto-dev/bypass-finals/commits\n[link_pulls]:https://github.com/avto-dev/bypass-finals/pulls\n[link_license]:https://github.com/avto-dev/bypass-finals/blob/master/LICENSE\n[getcomposer]:https://getcomposer.org/download/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favto-dev%2Fbypass-finals","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Favto-dev%2Fbypass-finals","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Favto-dev%2Fbypass-finals/lists"}