Download the PHP package hradigital/php-datatypes without Composer

On this page you can find all versions of the php package hradigital/php-datatypes. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package php-datatypes

PHP Datatypes

Master branch build status

CI Quality Downloads Licence Version PHP

Code Usage

This package is mean to provide you an easy way to do this (and much more):

... just by building your object like this:

Also, out-of-box, it will allow you to do the following:

... and much more. This will leave your objects clean from repetitive state management code, which frees you to implement your business logic in them.

In order to learn more about the code, please go here.

About

PHP Datatypes is meant to provide an easy way to create your Value Objects/Entities/Aggregates, in a fast and platform agnostic way, that promotes:

An Aggregate/Entity/ValueObject that extends AbstractValueObject will be built using predefined/tested Traits for each of the class attributes, leaving your class definition cleaned/free for your business logic implementation.

This will also allow you to reuse/load your objects with data that can come from a Database, Webservice, Event payload, etc...

Getters/Accessors for class attributes will return ValueObjects instead of primitive types, as much as possible. All these datatypes will also be included in the package, as it doesn't have any dependencies apart from, PHP itself.

To learn how to use this package, please go to AbstractValueObject documentation.

Inspiration

Some of the projects that inspired this one, are mainly Nikita Popov's Scalar Objects, but also Martin Helmich's Scalar Classes and Michael Hall's Datatypes.

Due to the "No 3rd party dependency" rule, this package will use some simplified versions of more popular datatypes. Some examples are:

Requirements & Installation

Scope - what belongs here, and what does not

The "No 3rd party dependency" rule above is a scope rule as much as a dependency rule. This package holds datatypes: values that validate and normalise themselves, and that any PHP application can use without a framework, an HTTP request or a template engine.

Behaviour that renders, parses documents, or exists to serve a web page is not a datatype, and lives in hradigital/php-markup instead:

Concern Package
Slug, Url, EmailAddress, Money, Datetime, … php-datatypes
Exception vocabulary (Exceptions\Datatypes\*) php-datatypes
Markup - plain text to structured HTML php-markup
SocialPreviewImageExtractor - reads an HTML <head> php-markup
SeoMetadata, SocialImage, ArticleMetadata, Open Graph / Twitter enums php-markup
schema.org JSON-LD nodes and their builders php-markup

php-markup depends on this package - never the other way round. A datatype that needed Illuminate\* to work would stop being usable in the non-Laravel hosts this package exists to serve.

Moved in 3.0.0. Web\Markup\Markup, Web\Markup\MarkupConfiguration, Web\Seo\SocialPreviewImageExtractor, Web\Seo\SeoMetadata, Web\Seo\SocialImage, Web\Seo\ArticleMetadata, Web\Seo\OpenGraphType and Web\Seo\TwitterCardType were removed from this package and now live in php-markup, under HraDigital\Components\Markup\ and HraDigital\Components\Markup\Seo\. Web\Seo\Slug, Web\Url and Web\EmailAddress are unaffected and stay here.

Usage

For more information about how to to use these Datatypes, please see the project's usage notes and some implementation examples in here.

Continuous Integration & Testing

The project is validated on every push and pull request through GitHub Actions. The CI pipeline runs:

Composer scripts are available to run the same checks locally:

Makefile targets

A Makefile wraps the same gates with a consistent interface. Run make help for the full list:

Scope any target with FILES and narrow a test run with FILTER. Append QUIET=1 for silent-on-success - gates print only on failure, test targets print only their final summary:

The targets run natively against vendor/. Override the EXEC prefix to run them elsewhere, e.g. make lint EXEC="docker exec <container>".

Versioning & Releases

Releases are cut automatically by GitHub Actions. The workflow is gated on CI: it only runs once the CI workflow completes for a master push, and it tags the exact commit CI validated - so a red commit is never released.

The next version is derived entirely from the commit messages since the last tag:

Commit Bump
A BREAKING CHANGE: footer Major
feat: Minor
fix:, perf:, refactor:, revert:, build: Patch
ci:, chore:, docs:, style:, test: No release

Every change to shipped code therefore bumps at least the revision number, while a docs-only or tooling-only push does not burn a version. A commit whose message is not a valid Conventional Commit is skipped entirely by the version calculation - which is what the commitlint CI gate prevents.

Breaking changes must use the footer. The release action detects a major bump only from a BREAKING CHANGE: note - the shorthand ! suffix (feat!: ...) is not recognised and would silently release a minor instead. Write it on its own line, after a blank line:

License

Mozilla Public License 2.0. See LICENSE.

You may use this package in closed-source and commercial products. If you modify and distribute the package's own files, those files must remain under the MPL-2.0.

The HRADigital name and package names are not covered by that licence - see TRADEMARK.md.

Contributing

Contributing to the project is easy and contributions are welcomed and appreciated.

Commit messages must follow Conventional Commits - CI rejects anything else, and the type you pick decides the next release version (see Versioning & Releases above).

It's obviously harder to maintain the project alone, but efforts will be made to keep and improve it, as I plan to use it as a dependency in other projects.


All versions of php-datatypes with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
ext-intl Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package hradigital/php-datatypes contains the following files

Loading the files please wait ...