Skip to content

snagshout/nucleus

 
 

Repository files navigation

Nucleus Build Status

A standalone PHP utility library. Inspired heavily by similar projects like libphutil. Currently used in personal and work projects. Designed to make working wth PHP a little bit nicer and predictable.

Requires HHVM 3.6 or PHP 5.6

Goal

  • Provide a consistent API for common operations.
  • Gather the most useful bits and snippets under one library.
  • Strong emphasis on strict type checking (e.g. float !== integer).
  • Functional programming ideas and concepts are welcome (I'm new to this).

Core pieces

While Nucleus has a bunch of random crap in it, there are some useful classes worth mentioning:

  • Spec: A multi-purpose constraint checking framework that can be easily extended.
  • Validator: Built upon Spec, the Validator component provides an interface for generating UX-friendly messages for a SpecResult.
  • Impersonator: A constructor dependency automocker. Useful for testing classes that have many external dependencies and projects that heavily use container dependency injection.
  • View: An set of classes and utilities for generating clean and safe HTML/Text. It sort of looks like XHP without the XML or de-sugarized React.js code.
  • Std, Arr, and others: We all know the PHP standard library is a mess. There are many failed attempts to fix this out there. This is another one of those attempts. I've created a few classes with a bunch of static aliases that attempt to improve upon it. Yes, there is a performance penalty (validation + at least one more function call), but it makes many operations more predictable and safer.

Building documentation

cd docs
pip install -r requirements.txt
make html

Contributing

Pull requests are accepted on GitHub. Bug fixes and small improvements are welcome. Big ideas will be reviewed and discussed.

Code Standard: PSR-2 with some additions. See https://github.com/sellerlabs/php-standard for more details.

License

This code is licensed under the MIT license. See LICENSE for more information.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 99.9%
  • Shell 0.1%