Commit 374d40ea by Van

Initial commit

parents
File added
Bolt Extension Starter
======================
A starter skeleton for a Bolt v3.x Extension
To get going run the following command, replacing the last argument with the name of your extension:
`composer create-project --no-install 'bolt/bolt-extension-starter:^3.0' <newextname>`
For more information, see this page in the Bolt documentation: https://docs.bolt.cm/extensions/building-starter/about
{
"name": "bolt/bolt-extension-starter",
"description": "",
"type": "bolt-extension",
"keywords": [
],
"require": {
"bolt/bolt": "^3.0"
},
"require-dev": {
"phpunit/phpunit": "^4.7"
},
"license": "MIT",
"authors": [
{
"name": "",
"email": "you@example.com"
}
],
"minimum-stability": "dev",
"prefer-stable": true,
"autoload": {
"psr-4": {
"Bolt\\Extension\\YourName\\ExtensionName\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"Bolt\\Extension\\YourName\\ExtensionName\\Tests\\": "tests",
"Bolt\\Tests\\": "vendor/bolt/bolt/tests/phpunit/unit/"
}
},
"extra": {
"bolt-assets": "web",
"bolt-class": "Bolt\\Extension\\YourName\\ExtensionName\\ExtensionNameExtension"
}
}
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
backupStaticAttributes="false"
bootstrap="tests/bootstrap.php"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false">
<testsuites>
<testsuite name="unit">
<directory>tests</directory>
</testsuite>
</testsuites>
<listeners>
<listener file="vendor/bolt/bolt/tests/phpunit/BoltListener.php" class="Bolt\Tests\BoltListener">
<arguments>
<!-- Configuration files. Can be either .yml or .yml.dist files -->
<!-- Locations can be relative to TEST_ROOT directory, the Bolt directory, or an absolute path -->
<array>
<element key="config">
<string>vendor/bolt/bolt/app/config/config.yml.dist</string>
</element>
<element key="contenttypes">
<string>vendor/bolt/bolt/app/config/contenttypes.yml.dist</string>
</element>
<element key="menu">
<string>vendor/bolt/bolt/app/config/menu.yml.dist</string>
</element>
<element key="permissions">
<string>vendor/bolt/bolt/app/config/permissions.yml.dist</string>
</element>
<element key="routing">
<string>vendor/bolt/bolt/app/config/routing.yml.dist</string>
</element>
<element key="taxonomy">
<string>vendor/bolt/bolt/app/config/taxonomy.yml.dist</string>
</element>
</array>
<!-- Theme directory. Can be relative to TEST_ROOT directory, the Bolt directory, or an absolute path -->
<array>
<element key="theme">
<string>theme/base-2014</string>
</element>
</array>
<!-- The Bolt SQLite database, leave empty to use the one bundled with Bolt's repository -->
<!-- Location can be relative to TEST_ROOT directory, the Bolt directory, or an absolute path -->
<array>
<element key="boltdb">
<string>vendor/bolt/bolt/tests/phpunit/unit/resources/db/bolt.db</string>
</element>
</array>
<!-- Reset the cache and test temporary directories -->
<boolean>true</boolean>
<!-- Create timer output in app/cache/phpunit-test-timer.txt -->
<boolean>true</boolean>
</arguments>
</listener>
</listeners>
</phpunit>
<?php
namespace Bolt\Extension\YourName\ExtensionName;
use Bolt\Extension\SimpleExtension;
/**
* ExtensionName extension class.
*
* @author Your Name <you@example.com>
*/
class ExtensionNameExtension extends SimpleExtension
{
}
<?php
namespace Bolt\Extension\YourName\ExtensionName\Tests;
use Bolt\Tests\BoltUnitTest;
use Bolt\Extension\YourName\ExtensionName\ExtensionNameExtension;
/**
* ExtensionName testing class.
*
* @author Your Name <you@example.com>
*/
class ExtensionTest extends BoltUnitTest
{
/**
* Ensure that the ExtensionName extension loads correctly.
*/
public function testExtensionBasics()
{
$app = $this->getApp(false);
$extension = new ExtensionNameExtension($app);
$name = $extension->getName();
$this->assertSame($name, 'ExtensionName');
$this->assertInstanceOf('\Bolt\Extension\ExtensionInterface', $extension);
}
public function testExtensionComposerJson()
{
$composerJson = json_decode(file_get_contents(dirname(__DIR__) . '/composer.json'), true);
// Check that the 'bolt-class' key correctly matches an existing class
$this->assertArrayHasKey('bolt-class', $composerJson['extra']);
$this->assertTrue(class_exists($composerJson['extra']['bolt-class']));
// Check that the 'bolt-assets' key points to the correct directory
$this->assertArrayHasKey('bolt-assets', $composerJson['extra']);
$this->assertSame('web', $composerJson['extra']['bolt-assets']);
}
}
<?php
include_once __DIR__ . '/../vendor/bolt/bolt/tests/phpunit/bootstrap.php';
define('EXTENSION_AUTOLOAD', realpath(dirname(__DIR__) . '/vendor/autoload.php'));
require_once EXTENSION_AUTOLOAD;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment