Download the PHP package bolzer/ts-const-enum without Composer
On this page you can find all versions of the php package bolzer/ts-const-enum. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download bolzer/ts-const-enum
More information about bolzer/ts-const-enum
Files in bolzer/ts-const-enum
Package ts-const-enum
Short Description A command line tool to generate typescript constants from your php constants
License Apache-2.0
Informations about the package ts-const-enum
Ts-Const-Enum (PHP)
Description
This tool will transform PHP Scalar-Constants - which are annotated with the provided attributes - to Typescript Constants and generates Typescript Enums from annotated PHP one dimensional constant arrays. This may be useful if you want to reference a value in a condition within your Typescript Code. You can easily import the generated constants. This has many advantages over just stating the value. If the value of the constant changes, your code won't break easily. If you change the name of a php constant the typescript code won't compile unless you changed all occurrences of the old constant name.
This is especially useful if you use alot of JS/TS-Frameworks and do conditionally rendering in regards to values / properties. The Constants are by default prefixed with the declaring class followed by __ and the constant name. You may provide an alias on attribute-level. Keep in mind to have unique names / alias as the constants will land in one file.
Usecase
Before
After
Installation
-
Require the dependency
-
Create in your root (where the vendor folder is) dir a config file
-
Add the following content to the previously created file with the output path.
- Take a look at the config class for more config option.
- Annotate some constants and arrays in your php code with the provided attributes
Constant
andEnum
Example
-
Run the binary of the tool
- Start using the constants
What's a makeshift enum in PHP?
Currently there're no enums in PHP. This will change with the release of PHP 8.2. However, those enums need to be transformed to typescript enums too. In the meantime i use constructs like these:
The constant "TYPES" is a makeshift enum. Those constructs will be transformed too. This will translate to the following enum in Typescript