AI prompts
base on # PHP Distribution Cloud Native Buildpack
The PHP Distribution CNB provides the PHP binary distribution. The buildpack
installs the PHP binary distribution onto the $PATH which makes it available
for subsequent buildpacks. These buildpacks can then use that distribution to
run PHP tooling. The PHP Web CNB is an example of a buildpack that utilizes the
PHP binary.
## Integration
The PHP Distribution CNB provides php as a dependency. Downstream buildpacks,
like [PHP Composer CNB](https://github.com/paketo-buildpacks/php-composer) can
require the php dependency by generating a [Build Plan
TOML](https://github.com/buildpacks/spec/blob/master/buildpack.md#build-plan-toml)
file that looks like the following:
```toml
[[requires]]
# The name of the PHP dependency is "php". This value is considered
# part of the public API for the buildpack and will not change without a plan
# for deprecation.
name = "php"
# The PHP buildpack supports some non-required metadata options.
[requires.metadata]
# Setting the build flag to true will ensure that the PHP
# depdendency is available on the $PATH for subsequent buildpacks during
# their build phase. If you are writing a buildpack that needs to run PHP
# during its build process, this flag should be set to true.
build = true
# Setting the launch flag to true will ensure that the PHP
# dependency is available on the $PATH for the running application. If you are
# writing an application that needs to run PHP at runtime, this flag should
# be set to true.
launch = true
# Optional. If not provided, the buildpack will provide the default version from buildpack.toml.
# To request a specific version, you can specify a semver constraint such as "8.*", "8.0.*",
# or even "8.0.4".
version = "8.0.4"
```
## Usage
To package this buildpack for consumption:
```bash
$ ./scripts/package.sh
```
This builds the buildpack's Go source using GOOS=linux by default. You can supply another value as the first argument to package.sh.
## License
This buildpack is released under version 2.0 of the [Apache License][a].
[a]: http://www.apache.org/licenses/LICENSE-2.0
## Run Tests
To run all unit tests, run:
```
./scripts/unit.sh
```
To run all integration tests, run:
```
./scripts/integration.sh
```
## Buildpack Configurations
### PHP Version
Specifying the PHP Dist version through buildpack.yml configuration is deprecated.
To migrate from using `buildpack.yml` please set the `$BP_PHP_VERSION`
environment variable at build time either directly (ex. `pack build my-app
--env BP_PHP_VERSION=7.3.*`) or through a [`project.toml`
file](https://github.com/buildpacks/spec/blob/main/extensions/project-descriptor.md)
```shell
# this allows you to specify a version constraint for the `php` depdendency
# any valid semver constaints (e.g. 7.*) are also acceptable
$BP_PHP_VERSION="7.3.*"
```
### PHP library directory
The PHP library directory is available to PHP via an include path in the PHP
configuration. By default it is set to `/workspace/lib` and can be overriden by
setting the `BP_PHP_LIB_DIR` environment variable at build-time.
```shell
$BP_PHP_LIB_DIR="some-directory"
```
### Provide custom `.ini` files
Custom `.ini` files can be provided from users to amend the default `php.ini`
file. This can be done by placing an `ini`-type configuration file inside
`<application directory>/.php.ini.d/`. Its path will be made available via the
`PHP_INI_SCAN_DIR`.
## Debug Logs
For extra debug logs from the image build process, set the `$BP_LOG_LEVEL`
environment variable to `DEBUG` at build-time (ex. `pack build my-app --env
BP_LOG_LEVEL=DEBUG` or through a [`project.toml`
file](https://github.com/buildpacks/spec/blob/main/extensions/project-descriptor.md).
", Assign "at most 3 tags" to the expected json: {"id":"6339","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"