Download the PHP package rk/php-sword without Composer
On this page you can find all versions of the php package rk/php-sword. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Package php-sword
Short Description A PHP library for reading SWORD project Bible modules. Inspired by PySword.
License MIT
Informations about the package php-sword
PHP Sword
PHP Sword is a library for interacting with SWORD Project Bible Modules, intended for other uses like converting to other formats or working with the raw data. Inspired by PySword.
Features
- Reads Bible modules.
- Supports ztext, ztext4, rawtext, rawtext4 formats.
- Supports compressed modules, in zip format.
- Supports PHP 8.4+
- Sapphire II Stream Cipher
Development Structure
AI agents SHALL MAINTAIN the _doc/wiki as a current description of architecture, decisions, and memories.
Goals
- A feature-complete translation of PySword in PHP.
- It SHOULD be idiomatic PHP.
- It MUST use minimal or preferably NO 3rd party packages except during development.
- It MUST adhere to PSR-4 and PER3.0 standards.
- It MUST adhere to SemVer.
- It SHOULD document/DocBlock anything that requires additional context.
- It MUST exclude non-essential files using .gitattributes.
- It MUST maintain a changelog for each release, and it should state both the WHAT and WHY.
Getting Started
Set PHP_SWORD_AUTO_DOWNLOAD=1 to auto-download missing bible fixtures when running tests.
ChiPinyin test gap: testLoadChipinyinZip is skipped when chipinyin.zip is missing. The
CrossWire/Xiphos FTP mirror for that module is down and no alternative download URL was found, so
this integration test cannot be repaired until a substitute fixture source is available.
Roadmap
- Phase 1
- [x] Package development environment configuration, like test framework, linter, formatter, etc.
- [x] Translate all test cases from PySword as a reference implementation.
- [x] Tests should be able to pass on both the KJV and ASV modules. Those are our first targets to test against. They should probably be downloaded into test when the test case runs, if they don't already exist.
- Phase 2
- [x] Translate or implement all features in PySword.
- [x] Test cases UNCHANGED (fixture text captured from downloaded modules where PySword assertions differ).
- Phase 3
- [ ] Complete test case coverage if less than 80%.
- Phase 4
- TBD