PHPackages                             chteuchteu/corporate-vcards-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. chteuchteu/corporate-vcards-bundle

ActiveLibrary

chteuchteu/corporate-vcards-bundle
==================================

Easily create professional looking vcards

v1.0.3(9y ago)01MITPHPPHP &gt;=5.3.0

Since Dec 23Pushed 9y ago1 watchersCompare

[ Source](https://github.com/chteuchteu/CorporateVCardsBundle)[ Packagist](https://packagist.org/packages/chteuchteu/corporate-vcards-bundle)[ RSS](/packages/chteuchteu-corporate-vcards-bundle/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (3)Dependencies (3)Versions (6)Used By (0)

CorporateVCardsBundle
=====================

[](#corporatevcardsbundle)

This Bundle allows you to easily create simple &amp; professional looking vcards:

[![CorporateVCardsBundle](screenshot.png)](screenshot.png)

Features
--------

[](#features)

- Produces a set of webpages for each defined profile: (with a customizable prefix)
    - /vcard/jppernaut
    - /vcard/cchazal
    - /vcard/pparvor
- On click, shows a QR Code containing all the profile information in the vcard vcf format
- Easily download the .vcf file to be opened in any contacts management tool
- Easily share the page by sending it as e-mail to a client, friend, relative, ...

Let's get started
-----------------

[](#lets-get-started)

To install this bundle inside your existent symfony2 project, follow these instructions:

1. Require this project

    ```
    composer require chteuchteu/corporate-vcards-bundle
    ```
2. Register this bundle in symfony's kernel:

    ```
    // app/AppKernel.php
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Chteuchteu\CorporateVCardsBundle\CorporateVCardsBundle(),
        );
    }
    ```
3. Configure routing:

    ```
    # app/config/routing.yml
    CorporateVCardsBundle:
        resource: "@CorporateVCardsBundle/Resources/config/routing.yml"
        prefix:   /vcard/
    ```
4. Configure the bundle (see Defining profiles)
5. Install assets:

    ```
    php bin/console asset:install
    ```

### Defining profiles

[](#defining-profiles)

We're now ready to configure this bundle. The `config` node sets general configuration, while `default` and `profiles`defines profiles-related information.

First, define define some - or none - default values using the `default` node. Then, create one or several profiles inside the `profiles` node. A valid profile tree would look like this:

```
bdumaurier:
    firstName: Bedelia
    lastName: Du Maurier
    company: Hannibal & Associates
    jobTitle: CEO
    email: bdumaurier@hannibal.com
    phone:
        mobile: +33 6 12 34 56 78
        work: +33 3 12 34 56 78
    address:
        street: 3706 Merry Cider Round
        city: Silverado
        region: California
        zip: 92676
        country: US
    photo: bundles/app/img/vcards-people/bdumaurier.jpg
    url: http://www.my-website.com
```

All these three nodes produces the following configuration tree view:

```
# app/config/config.yml
corporate_v_cards:
    config:                                     # BUNDLE CONFIGURATION
        mails_service: @app.mails                # Set to null to disable mails
        favicons:
            enabled: true
            real_favicon_generator_api_key: null
            dir: "@AppBundle/Resources/public/img/vcards-favicons/"
        backgrounds:
            - bundles/app/img/vcards-backgrounds/1.jpg
            - bundles/app/img/vcards-backgrounds/2.jpg
            - bundles/app/img/vcards-backgrounds/3.jpg
            - bundles/app/img/vcards-backgrounds/4.jpg
            - bundles/app/img/vcards-backgrounds/5.jpg

    default:                                    # DEFAULT PROFILE INFORMATION
        company: My Company
        phone:
            work: +33 3 45 67 89 10
        url: http://my_website.com

    profiles:                                   # PROFILES
        jdoe:
            firstName: John
            lastName: Doe
            photo: bundles/app/img/vcards-people/jdoe.jpg
```

> Warning: all URIs must be formatted as above (`@AppBundle/Resources/public/file.ext` vs `bundles/app/file.ext` format, trailing and leading slashes)

### Mails

[](#mails)

If enabled, a form will be shown on each vcard's page, allowing one to send the current vcard to an e-mail address. You must handle sending the mail in your own bundle, by implementing the `MailsServiceInterface`'s `sendVcard` function. It received three arguments:

- `$toMail`: form-submitted e-mail address
- `$profile`: person's information: `[ 'firstName' => 'John', 'lastName' => 'Doe', /* ... */ ]`
- `$person`: person's name as defined in your config.yml file: `jdoe`

### Favicons

[](#favicons)

Each profile can have custom favicons generated from its profile picture, using [RealFaviconGenerator](https://realfavicongenerator.net/)'s API. In order to use this feature, you must generate your own **Non-interactive API key** [here](https://realfavicongenerator.net/api/).

It is recommended to configure `config.favicons.dir` to be a directory in your own bundle, so you can add generated assets to source control.

Once run, the `cvc:generate-favicons` command will loop over each one of the configured profiles, and call RealFaviconGenerator's API if the current profile **has a photo and hasn't any generated favicons yet**.

> Note 1: you can force regenerating favicons for a profile by deleting its dir content

> Note 2: you must execute this command if you add new profiles, change a photo, or rename a profile key.

### Email protection

[](#email-protection)

In order to protect profiles e-mail addresses against spammer robots, we "encrypt" them using [ROT13](https://en.wikipedia.org/wiki/ROT13)substitution cipher. Those are then decoded client-side using a simple javascript script. This technique is not meant to be perfect nor secure, but to avoid displaying clear e-mail addresses in the vcards HTML source.

Contribute
----------

[](#contribute)

All contributions are welcomed! Please create your pull-requests against the `master` branch.

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity1

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~96 days

Total

4

Last Release

3504d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ddc0a5885248f38a4e02ef4f654c8028e4e4147e606e799e608bcc23b02b0478?d=identicon)[chteuchteu](/maintainers/chteuchteu)

---

Top Contributors

[![quentin-st](https://avatars.githubusercontent.com/u/1551971?v=4)](https://github.com/quentin-st "quentin-st (31 commits)")

---

Tags

qrcodevCard

### Embed Badge

![Health badge](/badges/chteuchteu-corporate-vcards-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/chteuchteu-corporate-vcards-bundle/health.svg)](https://phpackages.com/packages/chteuchteu-corporate-vcards-bundle)
```

###  Alternatives

[tecnickcom/tcpdf

TCPDF is a PHP class for generating PDF documents and barcodes.

4.5k101.8M473](/packages/tecnickcom-tcpdf)[endroid/qr-code

Endroid QR Code

4.8k67.6M348](/packages/endroid-qr-code)[simplesoftwareio/simple-qrcode

Simple QrCode is a QR code generator made for Laravel.

2.9k27.6M92](/packages/simplesoftwareio-simple-qrcode)[chillerlan/php-qrcode

A QR Code generator and reader with a user-friendly API. PHP 8.4+

2.4k28.9M208](/packages/chillerlan-php-qrcode)[milon/barcode

Barcode generator like Qr Code, PDF417, C39, C39+, C39E, C39E+, C93, S25, S25+, I25, I25+, C128, C128A, C128B, C128C, 2-Digits UPC-Based Extention, 5-Digits UPC-Based Extention, EAN 8, EAN 13, UPC-A, UPC-E, MSI (Variation of Plessey code)

1.5k13.3M39](/packages/milon-barcode)[sabre/vobject

The VObject library for PHP allows you to easily parse and manipulate iCalendar and vCard objects

59623.5M41](/packages/sabre-vobject)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
