PHPackages                             vonage/php-skeleton-app - 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. vonage/php-skeleton-app

ActiveProject

vonage/php-skeleton-app
=======================

Sample PHP Application to test environment setup

2.0.0(5y ago)072[5 issues](https://github.com/Nexmo/php-skeleton-app/issues)Apache 2.0PHP

Since Mar 23Pushed 3y ago11 watchersCompare

[ Source](https://github.com/Nexmo/php-skeleton-app)[ Packagist](https://packagist.org/packages/vonage/php-skeleton-app)[ RSS](/packages/vonage-php-skeleton-app/feed)WikiDiscussions main Synced 5d ago

READMEChangelogDependencies (9)Versions (6)Used By (0)

Vonage PHP Skeleton Application
===============================

[](#vonage-php-skeleton-application)

This is a basic Slim 4 PHP application to test and debug your Vonage credentials and environment. Utilize this application to test that your API credentials are in working order and to examine the event webhook data you receive when API requests are received by Vonage from your account.

- [Requirements](#requirements)
- [Installation and Usage](#installation-and-usage)
    - [Configure the Application](#configure-the-application)
    - [Run the Application](#run-the-application)
    - [Send an SMS to Test Your Setup](#send-an-sms-to-test-your-setup)
    - [Handling Event Webhooks](#handling-event-webhooks)
- [Contributing](#contributing)
- [License](#license)

Requirements
------------

[](#requirements)

This application requires that you have the following installed locally:

- [PHP 7.1 or higher](https://www.php.net/)
- [Composer](https://getcomposer.org/)

Additionally, in order to test your Vonage account, you must have a Vonage account. You can create a Vonage account for free or manage your Vonage account details at the [Vonage Dashboard](https://dashboard.nexmo.com).

This application is meant to be run as a standalone test, but it can also be used with a web server like Apache or nginx.

Installation and Usage
----------------------

[](#installation-and-usage)

You can run this application by first cloning this repository locally:

```
composer create-project vonage/php-skeleton-app
```

Alternatively, you could clone this repository through git

```
git clone git@github.com:Nexmo/php-skeleton-app.git
```

Once you have downloaded a local copy, change into the directory of the application in your terminal and install the dependencies:

```
composer install

```

You can now set up the application for your Vonage account.

### Configure the Application

[](#configure-the-application)

In order to test your API credentials, rename the provided `.env.example` file to `.env` and supply the values for the following environment variable keys:

- VONAGE\_API\_KEY=
- VONAGE\_API\_SECRET=

The `VONAGE_API_KEY` and `VONAGE_API_SECRET` can be found in [your account dashboard](https://dashboard.nexmo.com).

As always, make sure to not commit your sensitive API credential data to any public version control (don't worry, the `.env` file is in `.gitignore` already).

### Run the Application

[](#run-the-application)

Once you have your API credentials ready, you can go ahead and use this skeleton app. To start the application's server, run the following from the command line inside the directory of the app:

```
composer run --timeout=0 serve
```

Visit `http://localhost:8080` in your browser and you should see the form ready to send.

### Send an SMS to Test Your Setup

[](#send-an-sms-to-test-your-setup)

You can test that your credentials work by going to `http://localhost:8000/` in your browser and filling out the form there. You will need to supply:

1. A number to send the SMS to, such as your personal mobile phone
2. A number you wish the test SMS message to originate from. For example, this could be your [Vonage provisioned virtual phone number](https://developer.nexmo.com/numbers/overview)
3. A message to send

Fill in the field and choose "Send SMS" ... then check your cellphone!

### Handling Event Webhooks

[](#handling-event-webhooks)

In order to test the incoming webhook data from Vonage, the Vonage API needs an externally accessible URL to send that data to. A commonly used service for development and testing is [ngrok](https://ngrok.com). This service will provide you with an externally available web address that creates a secure tunnel to your local environment. The [Vonage Developer Platform](https://developer.nexmo.com/concepts/guides/testing-with-ngrok) has a guide to getting started with testing with ngrok but here's the short version:

```
ngrok http 8000

```

When the tunnel is created, copy the Forwarding URL (it will look something like `https://abcd1234.ngrok.io`); this is the public URL for your local application. You can use it to direct webhooks from Vonage's servers to your local application.

Once you have your ngrok URL, you can enter your [Vonage Dashboard](https://dashboard.nexmo.com) and supply it as the `EVENT URL` for any Vonage service that sends event data via a webhook. A good test case is creating a Voice application and providing the ngrok URL in the following format as the event url:

`#{ngrok URL}/webhooks/event`

You can then call your Vonage Voice application, and with your skeleton application running you can observe the webhook data be received in real time for diagnosis of any issues and testing of your Vonage account.

The skeleton app is also capable of receiving Vonage API webhook data. As mentioned in the [Using ngrok](#using-ngrok) section above, a good candidate for that test is a Vonage Voice application. From within your Vonage dashboard you can create a Vonage Voice application, provision a Vonage virtual phone number and then link that number to your Voice application. Once you have ensured that your new Voice application's `EVENT URL` is `#{ngrok URL}/webhooks/event`, you can then give your Vonage number a phone call. You should see the webhook data in your console in real time. For example, data for a ringing phone call will look like this:

```
[Mon Mar 16 22:03:24 2020] {"from":"447700900000", "to":"447700900000", "uuid":"a123456789012345fbdsw", "conversation_uuid":"CON-234567-fdsfs34-vfddfh-btger3-22345", "status":"ringing", "direction":"inbound", "timestamp":"2020-01-07T11:24:49.478Z"}

```

You can exit your application at anytime by holding down the CTRL and C keys on your keyboard.

Contributing
------------

[](#contributing)

We ❤️ contributions from everyone! [Bug reports](https://github.com/Nexmo/php-skeleton-app/issues), [bug fixes](https://github.com/Nexmo/php-skeleton-app/pulls) and feedback on the application is always appreciated. Look at the [Contributor Guidelines](https://github.com/Nexmo/php-skeleton-app/blob/master/CONTRIBUTING.md) for more information and please follow the [GitHub Flow](https://guides.github.com/introduction/flow/index.html).

License
-------

[](#license)

This projet is under the [MIT License](LICENSE.md)

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community19

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 55% 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 ~168 days

Total

2

Last Release

2073d ago

Major Versions

1.0.0 → 2.0.02020-09-10

### Community

Maintainers

![](https://www.gravatar.com/avatar/8c2583b67d4e1a4ade23b6ce271980d18bf3facb4ea3f0610fded770f380d17d?d=identicon)[dragonmantank](/maintainers/dragonmantank)

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

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

---

Top Contributors

[![SecondeJK](https://avatars.githubusercontent.com/u/17067659?v=4)](https://github.com/SecondeJK "SecondeJK (11 commits)")[![dragonmantank](https://avatars.githubusercontent.com/u/108948?v=4)](https://github.com/dragonmantank "dragonmantank (6 commits)")[![lornajane](https://avatars.githubusercontent.com/u/172607?v=4)](https://github.com/lornajane "lornajane (2 commits)")[![slorello89](https://avatars.githubusercontent.com/u/42971704?v=4)](https://github.com/slorello89 "slorello89 (1 commits)")

### Embed Badge

![Health badge](/badges/vonage-php-skeleton-app/health.svg)

```
[![Health](https://phpackages.com/badges/vonage-php-skeleton-app/health.svg)](https://phpackages.com/packages/vonage-php-skeleton-app)
```

###  Alternatives

[phlak/directory-lister

PHP directory lister

2.5k1.4k](/packages/phlak-directory-lister)[bacula-web/bacula-web

The open source web based reporting and monitoring tool for Bacula

1537.5k](/packages/bacula-web-bacula-web)[havenshen/slim-born

Slim Framework 3 skeleton application has authentication.

1941.7k](/packages/havenshen-slim-born)[codecourse/slender

A slender starter structure for Slim

772.4k](/packages/codecourse-slender)

PHPackages © 2026

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