php-kilo/README.md
Timothy Warren 26ea12883a
All checks were successful
timw4mail/php-kilo/pipeline/head This commit looks good
Minor code cleanup
2022-11-18 13:38:18 -05:00

1.1 KiB

PHP Kilo

Build Status

A reimplementation of the Kilo tutorial in PHP. Also has some inspiration from the Hecto text editor tutorial. Requires PHP 8 and FFI.

Requirements

  • PHP 8.1
  • FFI enabled

Implementation notes:

  • The editor prefix has been removed from all the relevant functions, instead they are methods on one of the implementation classes.
  • Enums are faked with class constants
  • Composer is used for autoloading
  • Properties that must be manually updated in the C version (like counts/string length) are implemented with magic methods, so they are essentially calculated on read.
  • Generally, if a function exists in PHP, with the same name as the C function, the PHP version will be used.
  • Classes are used to modularize functionality, and reduce the amount of functions with global side effects