This is a sample website written in PHP7 using Laravel framework and Kentico Cloud Delivery SDK for PHP. You can register your account for free at https://app.kenticocloud.com.
There should be PHP7.1 and higher and composer installed in your environment. Once these prerequisities are met, you run the application as follows:
- Clone this repository.
cd
in the project folder and runcomposer update
andphp artisan serve
commands.- Access
127.0.0.1:8000
(default) to browse the application.
Alternatively you can also deploy your application to your apache server just by clonning the repository, running composer update and accessing corresponding address on your server.
If you want to change the source Kentico Cloud project, follow these steps:
- In Kentico Cloud, choose Project settings from the app menu.
- Under Development, choose API keys.
- Copy your Project ID.
- Open
app\Providers\AppServiceProvider.php
file in the sample application folder. - Find
new DeliveryClient('975bf280-fd91-488c-994c-2f04416e5ee3');
and replace guid with your Project ID. - In the same file, find
share('engage_project_id', 'ace71be0-4898-4e7f-b0b6-f416080e5b8b')
and replace it with your Project ID as well. - Save the file.
When you run the sample application now, content is retrieved from your project.
- Navigate to https://app.kenticocloud.com in your browser.
- Sign in with your credentials.
- Manage content in the content administration interface of your sample project.
You can learn more about content editing with Kentico Cloud in the documentation.
You can retrieve content either through the Kentico Cloud Delivery SDKs or the Kentico Cloud Delivery API:
- For published content, use
https://deliver.kenticocloud.com/PROJECT_ID/items
. - For unpublished content, use
https://preview-deliver.kenticocloud.com/PROJECT_ID/items
.
For more info about the API, see the API reference.
You can find the Delivery and other SDKs at https://github.com/Kentico.
By default you can see sample visitor data in Kentico Cloud, even if you already feed the single-page application with your own content. Tracking real visitors needs to be set up separately and here's how to.
Tracking via tracking code on all public pages is enabled by default and can be configured in files app\Providers\AppServiceProvider.php
and resources\views\layouts\app.blade.php
.
If you want to update project that will track events from your pages, you have to replace guid in app\Providers\AppServiceProvider.php
on line containing share('engage_project_id', 'guid')
with your Project ID.
To remove tracking code altogether, remove following code from resources\views\layouts\app.blade.php
:
<script type="text/javascript">
!function(){var a='https://engage-ket.kenticocloud.com/js',b=document,c=b.createElement('script'),d=b.getElementsByTagName('script')[0];c.type='text/javascript',c.async=!0,c.defer=!0,c.src=a+'?d='+document.domain,d.parentNode.insertBefore(c,d)}(),window.ket=window.ket||function(){(ket.q=ket.q||[]).push(arguments)};
ket('start', '{{ $engage_project_id }}');
</script>
When you have tracking enabled and visit any of publicly facing pages, you should be able to see your visit in Analytics of Kentico Cloud. You can also create a new dynamic segment of people who did the custom activity you created and see that the segment is not empty. It should contain you as anonymous visitor. You can learn more about creating segments with Kentico Cloud in the documentation.
When using this sample application with some versions of PHP (reproduced on v7.1.13, 7.1.18 and 7.2), one of the dependencies (sunra/php-simple-html-dom-parser) tends to get stuck in an endless loop of calls to its own destructor. We worked-around this issue by renaming destructors in fetched dependencies every time they are changed. For futher reference, please see the issue in package's repository repository.
We would like to express our thanks to Stephen Rushing who created this sample application.