On Thu, Oct 26, 2023 at 8:37 AM Oladoyinbo Vincent <oladoyin...@gmail.com> wrote: > > Greetings to you all, > > I will like to submit an RFC on introducing type alias to php. > > Even though Generics won't or never be introduced to PHP, personally i will > like php to add the type alias feature. > > Type aliases provide a mechanism to create more descriptive and readable > type hints in PHP code. This enhancement will improve code readability and > maintainability and also to promote type reusability. > > > Motivation: > > The motivation behind introducing type aliases is to: > > 1. Enhance code readability by allowing developers to use meaningful type > hint names. > 2. Improve code maintainability by reducing the likelihood of type hint > updates throughout the codebase. > 3. Encourage the adoption of best practices for type hinting. > > > Proposal: > > Syntax: > > Type aliases will be declared using the `type` or `typealias` keyword, > followed by the alias name, an equal sign (`=`), and the type it is aliased > to. > > > Sample: > > ``` > type MyType = string; > > // or > > typealias MyType = string; > > > // Advance > > type MyType = string|null; > > // or > > type MyType = [string, null]; > > ``` > > > Usage: > > Type aliases can be used in parameter and return type hints as follows: > > ``` > > function greetings(MyType $message): string { > > // Implementation > > } > > greetings(1); // TypeError > > ``` > > Since this is just a basic feature, Type aliases Inheritance (compound > type) may not be added, since we are not digging deeper into generics :). > > > > References: > > https://docs.python.org/3/glossary.html#term-type-alias > > https://doc.rust-lang.org/beta/reference/items/type-aliases.html > > https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes-func.html#type-aliases > > > So, What do you think?
Please make these aliases either per-file (easiest to implement with the current design of types, in my humble opinion) or able to be namespaced. If I have an alias called Currency and a class somewhere else called Currency, what will happen if one file is included before the other? How will I specify that I want an alias or class of the same name? Will I need to alias the class, or can I alias the type alias? How will autoloading work with composer? Will a file called "Currency.php" be needed to discover the type alias? Robert Landers Software Engineer Utrecht NL -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php