File-based are the worst. Let the types be attached to namespaces. As we have autoloaders, everyone is free to load them however they want (PSR-4, file, custom autoloader, whatever).
Best regards, Erick Em seg., 30 de out. de 2023 às 08:34, G. P. B. <george.bany...@gmail.com> escreveu: > On Sun, 29 Oct 2023 at 20:36, Robert Landers <landers.rob...@gmail.com> > wrote: > > > My personal opinion is that file-based type aliases would be the best. > > It solves an immediate problem while introducing a problem most people > > will never have (needing to reuse the type aliases elsewhere). It > > allows them to be used in functions and classes, while also making > > code more readable but not opaque outside the file. For example, if > > there is a type called BigNumber that was an alias of > > GMP|int|float|string, outside the file, knowing the actual types in my > > IDE is more useful than "BigNumber" and doesn't require me to dig into > > the definition or even agree with the other file's definition of > > "BigNumber." I just need to know that I need to pass it one of those > > types from my own code. However, reading that file's code, I don't > > need to know the intimate details of the aliases to make it more > > readable. > > > > If we find ourselves constantly writing the same type aliases in a > > bunch of files, we only need to wait less than a year to implement > > "global" (as in, available once include'ed) in the very next version > > of PHP. > > > > No, this is actually ridiculous. File based type alias are dumb and I will > vote against this. > My main motivation to work on function autoloading in the first place was > to create a mechanism so that adding a new type autoloader is very easy. > As I already find the semantics of one interface per file dumb, let's not > make it even more ridiculous of having a single line in a file, especially > as a library/project will likely want to declare more than one type. > > An IDE should very much have no struggle to resolve what the type alias > actually resolves too, they already do this with classes and interfaces. > And needing to declare every alias in every single file of a project is a > ludicrous idea. > > Best, > > Gina/George P. Banyard >