mirror of
https://github.com/rlanvin/php-rrule.git
synced 2024-11-28 05:24:10 +01:00
Update README.md
This commit is contained in:
parent
5bc02593fe
commit
089dea906e
91
README.md
91
README.md
@ -1,3 +1,92 @@
|
||||
# RRULE for PHP
|
||||
|
||||
work in progress
|
||||
Lightweight and fast implementation of recurrence rules for PHP (RFC 5545).
|
||||
|
||||
[![Build Status](https://travis-ci.org/rlanvin/php-rrule.svg?branch=master)](https://travis-ci.org/rlanvin/php-rrule)
|
||||
|
||||
## Basic example
|
||||
|
||||
```php
|
||||
use RRule\RRule;
|
||||
|
||||
$rrule = new RRule([
|
||||
'FREQ' => 'MONTHLY',
|
||||
'INTERVAL' => 1,
|
||||
'DTSTART' => '2015-06-01',
|
||||
'COUNT' => 6
|
||||
]);
|
||||
|
||||
foreach ( $rrule as $occurrence ) {
|
||||
echo $occurrence->format('D d M Y'),"\n";
|
||||
}
|
||||
|
||||
// will output:
|
||||
// Mon 01 Jun 2015
|
||||
// Wed 01 Jul 2015
|
||||
// Sat 01 Aug 2015
|
||||
// Tue 01 Sep 2015
|
||||
// Thu 01 Oct 2015
|
||||
// Sun 01 Nov 2015
|
||||
```
|
||||
|
||||
Complete doc is available in [the wiki](https://github.com/rlanvin/php-rrule/wiki).
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP >= 5.4
|
||||
|
||||
## Installation
|
||||
|
||||
This is still a work in progress, use at your own risk!
|
||||
In particular, HOURLY, MINUTELY and SECONDELY frequencies are not implemented.
|
||||
|
||||
The recommended way is to install the lib [through Composer](http://getcomposer.org/).
|
||||
|
||||
Just add this to your `composer.json` file:
|
||||
|
||||
```JSON
|
||||
{
|
||||
"require": {
|
||||
"rlanvin/php-rrule": "dev-master*"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Then run `composer install` or `composer update`.
|
||||
|
||||
Now you can use the autoloader, and you will have access to the library:
|
||||
|
||||
```php
|
||||
<?php
|
||||
require 'vendor/autoload.php';
|
||||
```
|
||||
|
||||
### Alternative method
|
||||
|
||||
You can download `src/RRule.php` and require it.
|
||||
|
||||
## Note
|
||||
|
||||
I started this library because I wasn't happy with the existing implementations
|
||||
in PHP. The ones I tested were slow and/or had a very awkward/verbose API that
|
||||
I didn't like to use. They were also all missing a generator/iterator, which I
|
||||
think is key. So I thought it would be a good learning project to port the
|
||||
Python dateutil/rrule.py class into PHP.
|
||||
|
||||
The Python lib was a bit difficult to understand at first. The algorithms
|
||||
used are very smart (and fast), but they not commented and the variables are
|
||||
very opaque (I'm looking at you `lno1wkst`). I tried to comment and
|
||||
explain most of the algorithm in this PHP port, so feel free to check the code.
|
||||
|
||||
The lib differs from the python version in various aspects, notably in the
|
||||
respect of the RFC. This version is strictier and will not accept many
|
||||
non-compliant combinations of rule parts, that the python version otherwise accepts.
|
||||
There are also some additional features in this version.
|
||||
|
||||
## Documentation
|
||||
|
||||
Complete doc is available in [the wiki](https://github.com/rlanvin/php-rrule/wiki).
|
||||
|
||||
## License
|
||||
|
||||
This library is released under the MIT License.
|
||||
|
Loading…
Reference in New Issue
Block a user