{"id":13828040,"url":"https://github.com/core23/willitbreak","last_synced_at":"2026-01-19T08:32:25.625Z","repository":{"id":91868157,"uuid":"59943250","full_name":"core23/willitbreak","owner":"core23","description":"BC break table for php development using semver","archived":false,"fork":false,"pushed_at":"2016-06-04T05:39:40.000Z","size":1,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-14T04:48:41.094Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/core23.png","metadata":{"files":{"readme":"Readme.MD","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-05-29T13:00:53.000Z","updated_at":"2016-09-14T14:41:14.000Z","dependencies_parsed_at":"2024-01-18T05:11:09.715Z","dependency_job_id":"1dff88dc-7e4a-4966-b43d-833947b83178","html_url":"https://github.com/core23/willitbreak","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/core23%2Fwillitbreak","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/core23%2Fwillitbreak/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/core23%2Fwillitbreak/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/core23%2Fwillitbreak/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/core23","download_url":"https://codeload.github.com/core23/willitbreak/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247799021,"owners_count":20998098,"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-08-04T09:02:29.309Z","updated_at":"2026-01-19T08:32:25.613Z","avatar_url":"https://github.com/core23.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"# BC break table for php\n \nThe following tables will give you a short overview which changes are allowed in your code or if they result in a BC break.\n \n## Modification on classes\n \n| type           | add method | remove method  | add method stub | remove method stub | make abstract | remove abstract | make final | remove final | add interface | remove interface |\n|----------------|------------|----------------|-----------------|--------------------|---------------|-----------------|------------|--------------|---------------|------------------|\n| class          | ok         | BREAK          | -               | -                  | BREAK         | -               | BREAK      | ok           | ok            | ok               |\n| abstract class | ok         | BREAK          | BREAK           | BREAK              | -             | ok              | -          | -            | depends*1     | ok               |\n| final class    | ok         | BREAK          | -               | -                  | -             | -               | -          | ok           | ok            | ok               |\n| interface      | BREAK      | -              | BREAK           | ok                 | -             | -               | -          | -            | BREAK         | ok               |\n| trait          | BREAK      | BREAK          | BREAK           | ok                 | -             | -               | -          | -            | -             | -                |\n \nAdding / Removing methods for private methods are always alowed.\n \n## Modification on methods\n \n### Normal class\n \n| method type     | make final | remove final | increase visibility | decrease visiblity | add parameter | add optional parameter | remove parameter | remove optional parameter | change signature |\n|-----------------|------------|--------------|---------------------|--------------------|---------------|------------------------|------------------|---------------------------|------------------|\n| final public    | -          | ok           | -                   | BREAK              | BREAK         | ok                     | BREAK            | BREAK                     | BREAK            |\n| final protected | -          | ok           | ok                  | BREAK              | BREAK         | ok                     | BREAK            | BREAK                     | BREAK            |\n| public          | BREAK      | ok           | -                   | BREAK              | BREAK         | BREAK                  | BREAK            | BREAK                     | BREAK            |\n| protected       | BREAK      | ok           | BREAK               | BREAK              | BREAK         | BREAK                  | BREAK            | BREAK                     | BREAK            |\n| private         | -          | -            | ok                  | -                  | ok            | ok                     | ok               | ok                        | ok               |\n \n### Abstract class\n \n| method type        | make abstract | remove abstract | make final | remove final | increase visibility | decrease visiblity | add parameter | add optional parameter | remove parameter | remove optional parameter | change signature |\n|--------------------|---------------|-----------------|------------|--------------|---------------------|--------------------|---------------|------------------------|------------------|---------------------------|------------------|\n| final public       | -             | -               | -          | ok           | -                   | BREAK              | BREAK         | ok                     | BREAK            | BREAK                     | BREAK            |\n| final protected    | -             | -               | -          | ok           | ok                  | BREAK              | BREAK         | ok                     | BREAK            | BREAK                     | BREAK            |\n| abstract public    | -             | depends*1       | -          | -            | BREAK               | BREAK              | BREAK         | ok                     | BREAK            | BREAK                     | BREAK            |\n| abstract protected | -             | depends*1       | -          | -            | BREAK               | BREAK              | BREAK         | ok                     | BREAK            | BREAK                     | BREAK            |\n| public             | BREAK         | -               | BREAK      | -            | -                   | BREAK              | BREAK         | BREAK                  | BREAK            | BREAK                     | BREAK            |\n| protected          | BREAK         | -               | BREAK      | -            | BREAK               | BREAK              | BREAK         | BREAK                  | BREAK            | BREAK                     | BREAK            |\n| private            | -             | -               | -          | -            | ok                  | -                  | ok            | ok                     | ok               | ok                        | ok               |\n \n### Final class\n \n| method type | increase visibility | decrease visiblity | add parameter | add optional parameter | remove parameter | remove optional parameter | change signature |\n|-------------|---------------------|--------------------|---------------|------------------------|------------------|---------------------------|------------------|\n| public      | -                   | BREAK              | BREAK         | ok                     | BREAK            | BREAK                     | BREAK            |\n| protected   | ok                  | ok                 | ok            | ok                     | ok               | ok                        | ok               |\n| private     | ok                  | -                  | ok            | ok                     | ok               | ok                        | ok               |\n \n### Interface\n \n| method type | add parameter | add optional parameter | remove parameter | remove optional parameter | change signature |\n|-------------|---------------|------------------------|------------------|---------------------------|------------------|\n| public      | BREAK         | BREAK                  | BREAK            | BREAK                     | BREAK            |\n \n \n### Trait\n \n| method type        | make abstract | remove abstract | increase visibility | decrease visiblity | add parameter | add optional parameter | remove parameter | remove optional parameter | change signature |\n|--------------------|---------------|-----------------|---------------------|--------------------|---------------|------------------------|------------------|---------------------------|------------------|\n| abstract public    | -             |                 | -                   |                    |               |                        |                  |                           |                  |\n| abstract protected | -             |                 |                     |                    |               |                        |                  |                           |                  |\n| public             |               | -               | -                   |                    |               |                        |                  |                           |                  |\n| protected          |               | -               |                     |                    |               |                        |                  |                           |                  |\n| private            | -             | -               |                     | -                  | ok            | ok                     | ok               | ok                        | ok               |\n \nThe `final` keyword has no impact to traits, because you can't extend a trait.\n \n*1 ok, if you implement all methods\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcore23%2Fwillitbreak","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcore23%2Fwillitbreak","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcore23%2Fwillitbreak/lists"}