* Attempt to fix CI on macOS by not installing LLVM
* Download LLVM even on macOS
* Only set LIBCLANG_PATH on non-macOS
* Fix yaml
* Try to set SDK path for macOS
* Multi-line run
* Clippy lint
* Only check docs on PHP 8.1
* When running with docs stub, use PHP 8.1
* Only build docs on Ubuntu
* Remove `macos-ci` branch from actions
* Trigger actions
* Change describe types to C ABI, check ext-php-rs version
Rust doesn't have a stable ABI so the describe function and types are
now C ABI compatible, however, the internal types `Cow`, `Vec`, `Option`
aren't.
Check `ext-php-rs` versions to check compatibility between the CLI and
the extension.
* CLI requires 0.7.1
* Bump versions
* Replace standard library types with ABI-stable replacements
* Change option type
* started work on stub generator
* Worked on stub CLI tool
* Unused import
* Account for namespaces in function and class names
* Add support for docblocks on structs
* Push Rust comments to stubs
* Add indentation to stub generation
* Add CLI application to install and generate stubs
This time CLI application is defined on user side, called with `cargo
run -- ..args..`
* Export anyhow result
* Add constants to stub file
* Removed stub symbols
No longer required as we are now building while also linking to PHP.
Keeping the stubs causes the stubs to override the real symbols in the
extension.
* Fix stubs for real this time
Removed stub symbols as they were being included in the extension
dylib, fix by loading the PHP executable as a dylib, loading the
required symbols globally.
* Maybe actually fix stubs this time
* Forgot to remove PHP binary loading
* let's give this another go... cargo subcommand
Now called via `cargo php <install,stubs>`.
* Added `remove` command
* Tidied up cargo-php, commented, set up CI
* Fix return types with non-ident types
* define namespace ordering
* Fix tests, replace `Self` when in outer context
* Moved allowed bindings into separate file
* Update guide with CLI instructions