proget-hq / vcard
This VCard PHP class can generate a vCard with some data. When using an iOS device it will export as a .ics file because iOS devices don't support the default .vcf files.
Requires
- php: >=5.3.3
- behat/transliterator: ~1.0
Requires (Dev)
- phpunit/phpunit: 4.6.*
- dev-master
- v1.7.5
- v1.7.4
- v1.7.3
- 1.7.2
- 1.7.1
- 1.7.0
- 1.6
- 1.5.2
- 1.5.1
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.5
- 1.2.4
- 1.2.3
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.11
- 1.1.10
- 1.1.9
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- v1.1.2
- 1.1.1
- 1.1.0
- dev-feature/add-namespace
- dev-feature/revert-changes
- dev-2.0.0-dev
- dev-feature/add-url
- dev-feature/add-role
This package is auto-updated.
Last update: 2024-11-29 06:16:45 UTC
README
This VCard PHP library can generate a vCard with some data. When using an iOS device < iOS 8 it will export as a .ics file because iOS devices don't support the default .vcf files.
NOTE: We are working on a complete new version to work with vCard version 4.0, with extreme good code quality. Check out the new version
Usage
Installation
composer require jeroendesloovere/vcard
This will install the latest version of vcard with Composer
Example
use JeroenDesloovere\VCard\VCard; // define vcard $vcard = new VCard(); // define variables $lastname = 'Desloovere'; $firstname = 'Jeroen'; $additional = ''; $prefix = ''; $suffix = ''; // add personal data $vcard->addName($lastname, $firstname, $additional, $prefix, $suffix); // add work data $vcard->addCompany('Siesqo'); $vcard->addJobtitle('Web Developer'); $vcard->addRole('Data Protection Officer'); $vcard->addEmail('info@jeroendesloovere.be'); $vcard->addPhoneNumber(1234121212, 'PREF;WORK'); $vcard->addPhoneNumber(123456789, 'WORK'); $vcard->addAddress(null, null, 'street', 'worktown', null, 'workpostcode', 'Belgium'); $vcard->addLabel('street, worktown, workpostcode Belgium'); $vcard->addURL('http://www.jeroendesloovere.be'); $vcard->addPhoto(__DIR__ . '/landscape.jpeg'); // return vcard as a string //return $vcard->getOutput(); // return vcard as a download return $vcard->download(); // save vcard on disk //$vcard->setSavePath('/path/to/directory'); //$vcard->save();
View all examples or check the VCard class.
Parsing examples
The parser can either get passed a VCard string, like so:
// load VCardParser classes use JeroenDesloovere\VCard\VCardParser; $parser = new VCardParser($vcardString); echo $parser->getCardAtIndex(0)->fullname; // Prints the full name.
Or by using a factory method with a file name:
$parser = VCardParser::parseFromFile('path/to/file.vcf'); echo $parser->getCardAtIndex(0)->fullname; // Prints the full name.
View the parsing example or check the the VCardParser class class.
Support for frameworks
I've created a Symfony Bundle: VCard Bundle
Usage in for example: Laravel
return Response::make( $this->vcard->getOutput(), 200, $this->vcard->getHeaders(true) );
Tests
vendor/bin/phpunit tests
Documentation
The class is well documented inline. If you use a decent IDE you'll see that each method is documented with PHPDoc.
Contributing
Contributions are welcome and will be fully credited.
Pull Requests
To add or update code
- Coding Syntax - Please keep the code syntax consistent with the rest of the package.
- Add unit tests! - Your patch won't be accepted if it doesn't have tests.
- Document any change in behavior - Make sure the README and any other relevant documentation are kept up-to-date.
- Consider our release cycle - We try to follow semver. Randomly breaking public APIs is not an option.
- Create topic branches - Don't ask us to pull from your master branch.
- One pull request per feature - If you want to do more than one thing, send multiple pull requests.
- Send coherent history - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please squash them before submitting.
Issues
For bug reporting or code discussions.
More info on how to work with GitHub on help.github.com.
Credits
License
The module is licensed under MIT. In short, this license allows you to do everything as long as the copyright statement stays present.