Giter VIP home page Giter VIP logo

opinhelpers's Introduction

OpinHelpers

Build Status Total Downloads Monthly Downloads Latest Stable Version PRs Welcome License

OpinHelpers is a bellow "Swiss Army Knife" level set of opinionated Helper libs (hence the opin[h]el^^) covering some of the most annoying aspects of php programing, such as UTF8 string manipulation, arbitrary precision Mathematics or properly locking a file.

OpinHelpers libs are opinionated in several ways and do not aim at being universal, but they should hopefully be pretty useful in many IRL cases.

Installation

OpinHelpers can be installed using composer:

composer require "fab2s/opinhelpers"

If you want to specifically install the php >=7.2.0 version, use:

composer require "fab2s/opinhelpers" ^1

If you want to specifically install the php 5.6/7.1 version, use:

composer require "fab2s/opinhelpers" ^0

There are mostly (see Compatibility) no changes other than further typing from 0.x to 1.x

Documentation

OpinHelpers is just requiring individual libraries that each has its own repository and documentation

  • Math: High precision base10 fluent helper with a rather strict approach
  • Utf8: Purely static UTF8 Helper
  • Strings: Purely static String Helper to handle more advanced utf8 string manipulations
  • Bom: Purely static zero dependencies BOM Helper to handle unicode BOMs
  • FileLock: fluent file locking helper

Compatibility

OpinHelpers comes with a deprecated.php file you can require in your project should you need to keep using the old namespace from before v1

require 'vendor/fab2s/opinHelpers/src/deprecated.php';

// no you can 
use fab2s\OpinHelpers\Math;

// same as 
use fab2s\Math\Math;

// old version will be marked as deprecated 
$number = fab2s\OpinHelpers\Math::numder('42');

// new one is ok with full type hints
$number = fab2s\Math\Math::numder('42');

No notable changes where made to the methods names or signature, but there was some small return types changes (false vs null in Utf8), one edge value (Utf8::chr(0) = "\0") and one bug with UTF-32-LE BOM detection. It should be ok in most of the cases but it is still preferable to refactor to new namespace and review the usage

Requirements

OpinHelpers is tested against php 7.2, 7.3, 7.4 and 8.0

Contributing

Contributions are welcome, do not hesitate to open issues and submit pull requests.

License

Each of OpinHelpers components are open-sourced software licensed under the MIT license

opinhelpers's People

Contributors

fab2s avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.