{"id":17725533,"url":"https://github.com/webarchitect609/bitrix-taxidermist","last_synced_at":"2025-04-01T16:30:26.944Z","repository":{"id":47084595,"uuid":"264732803","full_name":"webarchitect609/bitrix-taxidermist","owner":"webarchitect609","description":"Создание имитаций(mocking) классов Битрикс для Unit-тестов и статического анализа кода.","archived":false,"fork":false,"pushed_at":"2023-05-12T21:12:46.000Z","size":111,"stargazers_count":6,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-09-19T21:09:29.652Z","etag":null,"topics":["bitrix","composer","composer-library","mock","mocking","mocks","mocks-generator","mockup","php"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webarchitect609.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2020-05-17T18:38:38.000Z","updated_at":"2024-05-13T10:27:54.000Z","dependencies_parsed_at":"2024-10-25T20:09:33.885Z","dependency_job_id":"72cef75c-c683-48c2-a614-2e7a161f9362","html_url":"https://github.com/webarchitect609/bitrix-taxidermist","commit_stats":{"total_commits":38,"total_committers":3,"mean_commits":"12.666666666666666","dds":"0.13157894736842102","last_synced_commit":"6383614e3a0a9bfca9e40701ff3a577bcf992295"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":"webarchitect609/composer-library-skeleton","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webarchitect609%2Fbitrix-taxidermist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webarchitect609%2Fbitrix-taxidermist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webarchitect609%2Fbitrix-taxidermist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webarchitect609%2Fbitrix-taxidermist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webarchitect609","download_url":"https://codeload.github.com/webarchitect609/bitrix-taxidermist/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246620222,"owners_count":20806722,"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":["bitrix","composer","composer-library","mock","mocking","mocks","mocks-generator","mockup","php"],"created_at":"2024-10-25T16:04:46.880Z","updated_at":"2025-04-01T16:30:26.560Z","avatar_url":"https://github.com/webarchitect609.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Битрикс таксидермист\n====================\n[![Travis Build Status](https://travis-ci.com/webarchitect609/bitrix-taxidermist.svg?branch=master)](https://travis-ci.com/webarchitect609/bitrix-taxidermist)\n[![codecov](https://codecov.io/gh/webarchitect609/bitrix-taxidermist/branch/master/graph/badge.svg?token=BVYMR6SDYJ)](https://codecov.io/gh/webarchitect609/bitrix-taxidermist)\n[![PHP version](https://img.shields.io/packagist/php-v/webarchitect609/bitrix-taxidermist)](https://www.php.net/supported-versions.php)\n[![Latest version](https://img.shields.io/github/v/tag/webarchitect609/bitrix-taxidermist?sort=semver)](https://github.com/webarchitect609/bitrix-taxidermist/releases)\n[![Downloads](https://img.shields.io/packagist/dt/webarchitect609/bitrix-taxidermist)](https://packagist.org/packages/webarchitect609/bitrix-taxidermist)\n[![License](https://img.shields.io/github/license/webarchitect609/bitrix-taxidermist)](LICENSE.md)\n\n**Пожалуйста, будьте внимательны:** это пока нестабильная альфа-версия!\n\nДля разработки Unit-тестов библиотек, зависимых от Битрикс, требуется сам Битрикс. Однако его установка является долгим\nпроцессом, который контролируется через визуальный интерфейс в браузере и очень сложно поддаётся автоматизации. Данная\nбиблиотека предоставляет возможность автоматического создания имитаций(mocking) классов Битрикс без установки\nпоследнего. Одновременно решается проблема `Multiple definitions exist for class '%bitrixClassName%'` в IDE при\nразработке.\n\nВозможности\n-----------\n- Автоматическое создание mock-классов Битрикс для использование в Unit-тестах\n    \nУстановка\n---------\n`composer require --dev webarchitect609/bitrix-taxidermist`\n\nИспользование\n-------------\n### Unit-тесты\n\nПри написании Unit-теста в переопределении метода `\\PHPUnit\\Framework\\TestCase::setUp()` или\n`\\PHPUnit\\Framework\\TestCase::setUpBeforeClass()` следует запустить изготовление имитаций всех классов:\n\n```php\nuse WebArch\\BitrixTaxidermist\\Taxidermist;\n\n(new Taxidermist)-\u003etaxidermizeAll();\n\n```\n\nБудут автоматически созданы алиасы. Например, \n\n```php\n/** @noinspection ALL */\nclass_alias('\\WebArch\\BitrixTaxidermist\\Mock\\Bitrix\\Main\\Data\\Cache', '\\Bitrix\\Main\\Data\\Cache');\n```\n\n, и таким образом Unit-тест может пользоваться этими классами точно также, как если бы в его распоряжении был\nустановленный Битрикс.\n\n### Статический анализ кода\n\nСледует указать файл `~/resources/autoload-dist.php` в качестве дополнительного файла автозагрузчика.\n\nИзвестные особенности\n---------------------\n\n### Ошибка при вызове `\\Bitrix\\Main\\Application::getInstance()`\n\nЕсли необходимо работать с `\\Bitrix\\Main\\Application::getInstance()`, он будет вызывать ошибку:\n```\nError: Cannot instantiate abstract class WebArch\\BitrixTaxidermist\\Mock\\Bitrix\\Main\\Application\n```\nЧтобы этого избежать, следует создать требуемый объект приложения. Например, так:\n\n```php\nuse WebArch\\BitrixTaxidermist\\Mock\\Bitrix\\Main\\HttpApplication;\n\nHttpApplication::getInstance();\n```\n\nЛицензия и информация об авторе\n-------------------------------\n[BSD-3-Clause](LICENSE.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebarchitect609%2Fbitrix-taxidermist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebarchitect609%2Fbitrix-taxidermist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebarchitect609%2Fbitrix-taxidermist/lists"}