1.4 KiB
1.4 KiB
Welcome
Welcome to the documentation of the THP programming languague.
THP is a new programming language that compiles to PHP.
Goals
- Bring static typing to PHP: Not just type hints, not use
mixed
for everything that isn't a primitive type. - Avoid automatic type conversion.
- Remove the inconsistencies in the language.
- Organize the stdlib.
- Differentiate between Arrays, Tuples, Maps and Sets.
- Create a consistent language.
- Create typings for popular libraries (like TS's
.d.ts
). - Have a simple instalation and configuration (requiring just Composer).
- Ship a fast, native binary (not written in PHP).
- Sub 10ms watch mode.
- Support in-place compilation.
- Emit readable PHP code (but not meant to be edited).
- Implement a LSP server.
Not goals
These are not aspects that THP looks to solve or implement.
- Be what TypeScript is for JavaScript.
- Use PHP syntax/conventions.
Philosophy
Compared to PHP
Differences
Runtime similarities
Improvements
use PDO
use Globals::Env
val (Some(dbUri) Some(dbUser) Some(dbPassword)) = (
Env::get("DB_URI")
Env::get("DB_USERNAME")
Env::get("DB_PASSWORD")
)
else {
die("All 3 db environment variables must be set.")
}
match PDO(dbUri dbUser dbPassword) {
Ok(connection) -> { /* db operations */ }
Err(pdoException) -> { /* handle exception */ }
}