Use a type-safe config class instead of passing in an array
This commit is contained in:
parent
c31eaf2d18
commit
7ec09310b2
16
README.md
16
README.md
@ -30,32 +30,34 @@ Basic usage example:
|
|||||||
``` php
|
``` php
|
||||||
<?php
|
<?php
|
||||||
use ActivityPub\ActivityPub;
|
use ActivityPub\ActivityPub;
|
||||||
|
use ActivityPub\Config\ActivityPubConfig;
|
||||||
|
|
||||||
// Constructing the ActivityPub instance
|
// Constructing the ActivityPub instance
|
||||||
$activitypub = new ActivityPub( array(
|
$config = ActivityPubConfig::createBuilder()
|
||||||
// Function to determine if the current request should be associated
|
// Function to determine if the current request should be associated
|
||||||
// with an ActivityPub actor. It should return the actor id associated
|
// with an ActivityPub actor. It should return the actor id associated
|
||||||
// with the current request, or false if the current request is not associated
|
// with the current request, or false if the current request is not associated
|
||||||
// with the actor. This is where you can plug in your application's user
|
// with the actor. This is where you can plug in your application's user
|
||||||
// management system:
|
// management system:
|
||||||
'authFunction' => function() {
|
->setAuthFunction( function() {
|
||||||
if ( current_user_is_logged_in() ) {
|
if ( current_user_is_logged_in() ) {
|
||||||
return get_actor_id_for_current_user();
|
return get_actor_id_for_current_user();
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
},
|
} )
|
||||||
// Database connection options, passed directly to Doctrine:
|
// Database connection options, passed directly to Doctrine:
|
||||||
'dbOptions' => array(
|
->setDbConnectionParams( array(
|
||||||
'driver' => 'pdo_mysql',
|
'driver' => 'pdo_mysql',
|
||||||
'user' => 'mysql'
|
'user' => 'mysql'
|
||||||
'password' => 'thePa$$word',
|
'password' => 'thePa$$word',
|
||||||
'dbname' => 'my-database',
|
'dbname' => 'my-database',
|
||||||
),
|
) )
|
||||||
// Database table name prefix for compatibility with $wpdb->prefix, etc.:
|
// Database table name prefix for compatibility with $wpdb->prefix, etc.:
|
||||||
// Default: ''
|
// Default: ''
|
||||||
'dbPrefix' => 'activitypub_',
|
->setDbPrefix( 'activitypub_' )
|
||||||
) );
|
->build();
|
||||||
|
$activitypub = new ActivityPub( $config );
|
||||||
|
|
||||||
// Routing incoming ActivityPub requests to ActivityPub-PHP
|
// Routing incoming ActivityPub requests to ActivityPub-PHP
|
||||||
if ( in_array( $_SERVER['HTTP_ACCEPT'],
|
if ( in_array( $_SERVER['HTTP_ACCEPT'],
|
||||||
|
@ -5,6 +5,7 @@ require_once __DIR__ . '/../vendor/autoload.php';
|
|||||||
|
|
||||||
use ActivityPub\Auth\AuthListener;
|
use ActivityPub\Auth\AuthListener;
|
||||||
use ActivityPub\Auth\SignatureListener;
|
use ActivityPub\Auth\SignatureListener;
|
||||||
|
use ActivityPub\Config\ActivityPubConfig;
|
||||||
use ActivityPub\Config\ActivityPubModule;
|
use ActivityPub\Config\ActivityPubModule;
|
||||||
use ActivityPub\Http\Router;
|
use ActivityPub\Http\Router;
|
||||||
use Doctrine\ORM\EntityManager;
|
use Doctrine\ORM\EntityManager;
|
||||||
@ -27,12 +28,11 @@ class ActivityPub
|
|||||||
/**
|
/**
|
||||||
* Constructs a new ActivityPub instance
|
* Constructs a new ActivityPub instance
|
||||||
*
|
*
|
||||||
* @param array $opts Array of options. Valid keys are
|
* @param ActivityPubConfig $config Configuration options
|
||||||
* 'dbOptions', 'dbprefix', and 'isDevMode'.
|
|
||||||
*/
|
*/
|
||||||
public function __construct( array $opts )
|
public function __construct( ActivityPubConfig $config )
|
||||||
{
|
{
|
||||||
$this->module = new ActivityPubModule( $opts );
|
$this->module = new ActivityPubModule( $config);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
98
src/Config/ActivityPubConfig.php
Normal file
98
src/Config/ActivityPubConfig.php
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<?php
|
||||||
|
namespace ActivityPub\Config;
|
||||||
|
|
||||||
|
use ActivityPub\Config\ActivityPubConfigBuilder;
|
||||||
|
use ActivityPub\Objects\ContextProvider;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The ActivityPubConfig is a data class to hold ActivityPub configuration options
|
||||||
|
*/
|
||||||
|
class ActivityPubConfig
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
private $dbConnectionParams;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
private $isDevMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private $dbPrefix;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Callable
|
||||||
|
*/
|
||||||
|
private $authFunction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
private $jsonLdContext;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Don't call this directly - instead, use
|
||||||
|
* ActivityPubConfig->createBuilder()->build()
|
||||||
|
*
|
||||||
|
* @param ActivityPubConfigBuilder $builder
|
||||||
|
*/
|
||||||
|
public function __construct( ActivityPubConfigBuilder $builder )
|
||||||
|
{
|
||||||
|
$this->dbConnectionParams = $builder->getDbConnectionParams();
|
||||||
|
$this->isDevMode = $builder->getIsDevMode();
|
||||||
|
$this->dbPrefix = $builder->getDbPrefix();
|
||||||
|
$this->authFunction = $builder->getAuthFunction();
|
||||||
|
$this->jsonLdContext = $builder->getJsonLdContext();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function createBuilder()
|
||||||
|
{
|
||||||
|
return new ActivityPubConfigBuilder();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public function getDbConnectionParams()
|
||||||
|
{
|
||||||
|
return $this->dbConnectionParams;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
public function getIsDevMode()
|
||||||
|
{
|
||||||
|
return $this->isDevMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public function getDbPrefix()
|
||||||
|
{
|
||||||
|
return $this->dbPrefix;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Callable
|
||||||
|
*/
|
||||||
|
public function getAuthFunction()
|
||||||
|
{
|
||||||
|
return $this->authFunction;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public function getJsonLdContext()
|
||||||
|
{
|
||||||
|
return $this->jsonLdContext;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
199
src/Config/ActivityPubConfigBuilder.php
Normal file
199
src/Config/ActivityPubConfigBuilder.php
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
<?php
|
||||||
|
namespace ActivityPub\Config;
|
||||||
|
|
||||||
|
use ActivityPub\Config\ActivityPubConfig;
|
||||||
|
use ActivityPub\Objects\ContextProvider;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The ActivityPubConfigBuilder is a builder class to create ActivityPub config data
|
||||||
|
*
|
||||||
|
* Usage:
|
||||||
|
* $config = ActivityPubConfig::createBuilder()
|
||||||
|
* ->setDbConnectionParams( array(
|
||||||
|
* 'driver' => 'pdo_sqlite',
|
||||||
|
* 'path' => __DIR__ . '/db.sqlite'
|
||||||
|
* ) )
|
||||||
|
* ->build();
|
||||||
|
*
|
||||||
|
* See the `set*` methods below for descriptions of available options.
|
||||||
|
*/
|
||||||
|
class ActivityPubConfigBuilder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
private $dbConnectionParams;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var bool
|
||||||
|
*/
|
||||||
|
private $isDevMode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
private $dbPrefix;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Callable
|
||||||
|
*/
|
||||||
|
private $authFunction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
private $jsonLdContext;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new ActivityPubConfig instance with default values
|
||||||
|
*
|
||||||
|
* See the `set*` methods below for individual option defaults.
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->isDevMode = false;
|
||||||
|
$this->dbPrefix = '';
|
||||||
|
$this->authFunction = function() {
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
$this->jsonLDContext = ContextProvider::DEFAULT_CONTEXT;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validates and builds the config instance
|
||||||
|
*
|
||||||
|
* @return ActivityPubConfig
|
||||||
|
*/
|
||||||
|
public function build()
|
||||||
|
{
|
||||||
|
$this->validate();
|
||||||
|
return new ActivityPubConfig( $this );
|
||||||
|
}
|
||||||
|
|
||||||
|
private function validate()
|
||||||
|
{
|
||||||
|
if ( ! $this->dbConnectionParams ) {
|
||||||
|
throw new Exception( "Missing required option 'dbConnectionParams'" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The `dbConnectionParams` are the Doctrine connection parameters,
|
||||||
|
* passed directly through to EntityManager::create(). See
|
||||||
|
* https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/tutorials/getting-started.html#obtaining-the-entitymanager
|
||||||
|
*
|
||||||
|
* This option is required and has no default.
|
||||||
|
* @param array $dbConnectionParams The connection parameters
|
||||||
|
* @return ActivityPubConfigBuilder The builder instance
|
||||||
|
*/
|
||||||
|
public function setDbConnectionParams( array $dbConnectionParams )
|
||||||
|
{
|
||||||
|
$this->dbConnectionParams = $dbConnectionParams;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function getDbConnectionParams()
|
||||||
|
{
|
||||||
|
return $this->dbConnectionParams;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If `isDevMode` is true, the Doctrine EntityManager configuration will
|
||||||
|
* be set to development mode.
|
||||||
|
*
|
||||||
|
* Default: false
|
||||||
|
* @param bool $isDevMode
|
||||||
|
* @return ActivityPubConfigBuilder The builder instance
|
||||||
|
*/
|
||||||
|
public function setIsDevMode( bool $isDevMode )
|
||||||
|
{
|
||||||
|
$this->isDevMode = $isDevMode;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return bool
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function getIsDevMode()
|
||||||
|
{
|
||||||
|
return $this->isDevMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The `dbPrefix` is a string that is prepended to all SQL tables created
|
||||||
|
* by the ActivityPub library. This is useful for environments like multi-site
|
||||||
|
* WordPress installations where table prefixes are used to distinguish tables
|
||||||
|
* for different sites.
|
||||||
|
*
|
||||||
|
* Default: ''
|
||||||
|
* @param string $dbPrefix
|
||||||
|
* @return ActivityPubConfigBuilder The builder instance
|
||||||
|
*/
|
||||||
|
public function setDbPrefix( string $dbPrefix )
|
||||||
|
{
|
||||||
|
$this->dbPrefix = $dbPrefix;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getDbPrefix()
|
||||||
|
{
|
||||||
|
return $this->dbPrefix;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The `authFunction` is used to bridge your application's user management
|
||||||
|
* system with ActivityPub. It should be a Callable that takes no arguments
|
||||||
|
* and returns the ID of the ActivityPub actor associated with the user
|
||||||
|
* authenticated to the current request, if any. If no such actor exists,
|
||||||
|
* it should return `false`.
|
||||||
|
*
|
||||||
|
* Default: function() { return false; }, i.e. HTTP signatures are the only valid
|
||||||
|
* authentication mechanism.
|
||||||
|
* @param Callable $authFunction
|
||||||
|
* @return ActivityPubConfigBuilder The builder instance
|
||||||
|
*/
|
||||||
|
public function setAuthFunction( Callable $authFunction )
|
||||||
|
{
|
||||||
|
$this->authFunction = $authFunction;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Callable
|
||||||
|
*/
|
||||||
|
public function getAuthFunction()
|
||||||
|
{
|
||||||
|
return $this->authFunction;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The `jsonLdContext` option sets a custom JSON-LD context on all
|
||||||
|
* objects created by the ActivityPub library. See https://json-ld.org/.
|
||||||
|
*
|
||||||
|
* Default: array( 'https://www.w3.org/ns/activitystreams',
|
||||||
|
* 'https://w3id.org/security/v1' )
|
||||||
|
* @param array $jsonLdContext
|
||||||
|
* @return ActivityPubConfigBuilder The builder instance
|
||||||
|
*/
|
||||||
|
public function setJsonLdContext( array $jsonLdContext )
|
||||||
|
{
|
||||||
|
$this->jsonLdContext = $jsonLdContext;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getJsonLdContext()
|
||||||
|
{
|
||||||
|
return $this->jsonLdContext;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
@ -6,6 +6,7 @@ use ActivityPub\Auth\AuthService;
|
|||||||
use ActivityPub\Auth\SignatureListener;
|
use ActivityPub\Auth\SignatureListener;
|
||||||
use ActivityPub\Controllers\GetController;
|
use ActivityPub\Controllers\GetController;
|
||||||
use ActivityPub\Controllers\PostController;
|
use ActivityPub\Controllers\PostController;
|
||||||
|
use ActivityPub\Config\ActivityPubConfig;
|
||||||
use ActivityPub\Crypto\HttpSignatureService;
|
use ActivityPub\Crypto\HttpSignatureService;
|
||||||
use ActivityPub\Database\PrefixNamingStrategy;
|
use ActivityPub\Database\PrefixNamingStrategy;
|
||||||
use ActivityPub\Http\Router;
|
use ActivityPub\Http\Router;
|
||||||
@ -34,30 +35,16 @@ class ActivityPubModule
|
|||||||
*/
|
*/
|
||||||
private $injector;
|
private $injector;
|
||||||
|
|
||||||
public function __construct( $options )
|
public function __construct( ActivityPubConfig $config )
|
||||||
{
|
{
|
||||||
$defaults = array(
|
|
||||||
'isDevMode' => false,
|
|
||||||
'dbPrefix' => '',
|
|
||||||
'authFunction' => function() {
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
'context' => array(
|
|
||||||
'https://www.w3.org/ns/activitystreams',
|
|
||||||
'https://w3id.org/security/v1',
|
|
||||||
),
|
|
||||||
);
|
|
||||||
$options = array_merge( $defaults, $options );
|
|
||||||
$this->validateOptions( $options );
|
|
||||||
|
|
||||||
$this->injector = new ContainerBuilder;
|
$this->injector = new ContainerBuilder;
|
||||||
|
|
||||||
$dbConfig = Setup::createAnnotationMetadataConfiguration(
|
$dbConfig = Setup::createAnnotationMetadataConfiguration(
|
||||||
array( __DIR__ . '/../Entities' ), $options['isDevMode']
|
array( __DIR__ . '/../Entities' ), $config->getIsDevMode()
|
||||||
);
|
);
|
||||||
$namingStrategy = new PrefixNamingStrategy( $options['dbPrefix'] );
|
$namingStrategy = new PrefixNamingStrategy( $config->getDbPrefix() );
|
||||||
$dbConfig->setNamingStrategy( $namingStrategy );
|
$dbConfig->setNamingStrategy( $namingStrategy );
|
||||||
$dbParams = $options['dbOptions'];
|
$dbParams = $config->getDbConnectionParams();
|
||||||
$this->injector->register( EntityManager::class, EntityManager::class )
|
$this->injector->register( EntityManager::class, EntityManager::class )
|
||||||
->setArguments( array( $dbParams, $dbConfig ) )
|
->setArguments( array( $dbParams, $dbConfig ) )
|
||||||
->setFactory( array( EntityManager::class, 'create' ) );
|
->setFactory( array( EntityManager::class, 'create' ) );
|
||||||
@ -85,12 +72,12 @@ class ActivityPubModule
|
|||||||
->addArgument( new Reference( ObjectsService::class ) );
|
->addArgument( new Reference( ObjectsService::class ) );
|
||||||
|
|
||||||
$this->injector->register( AuthListener::class, AuthListener::class )
|
$this->injector->register( AuthListener::class, AuthListener::class )
|
||||||
->addArgument( $options['authFunction'] );
|
->addArgument( $config->getAuthFunction() );
|
||||||
|
|
||||||
$this->injector->register( AuthService::class, AuthService::class );
|
$this->injector->register( AuthService::class, AuthService::class );
|
||||||
|
|
||||||
$this->injector->register( ContextProvider::class, ContextProvider::class )
|
$this->injector->register( ContextProvider::class, ContextProvider::class )
|
||||||
->addArgument( $options['context'] );
|
->addArgument( $config->getJsonLdContext() );
|
||||||
|
|
||||||
$this->injector->register( CollectionsService::class, CollectionsService::class )
|
$this->injector->register( CollectionsService::class, CollectionsService::class )
|
||||||
->addArgument( self::COLLECTION_PAGE_SIZE )
|
->addArgument( self::COLLECTION_PAGE_SIZE )
|
||||||
@ -127,18 +114,5 @@ class ActivityPubModule
|
|||||||
{
|
{
|
||||||
return $this->injector->get( $id );
|
return $this->injector->get( $id );
|
||||||
}
|
}
|
||||||
|
|
||||||
private function validateOptions( $options )
|
|
||||||
{
|
|
||||||
$required = array( 'dbOptions' );
|
|
||||||
$actual = array_keys( $options );
|
|
||||||
$missing = array_diff( $required, $actual );
|
|
||||||
if ( count( $missing ) > 0 ) {
|
|
||||||
throw new InvalidArgumentException(
|
|
||||||
'Missing required options: ' . print_r( $missing, t )
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
namespace ActivityPub\Test;
|
namespace ActivityPub\Test;
|
||||||
|
|
||||||
use ActivityPub\ActivityPub;
|
use ActivityPub\ActivityPub;
|
||||||
|
use ActivityPub\Config\ActivityPubConfig;
|
||||||
use ActivityPub\Test\TestConfig\SQLiteTestCase;
|
use ActivityPub\Test\TestConfig\SQLiteTestCase;
|
||||||
use ActivityPub\Test\TestConfig\ArrayDataSet;
|
use ActivityPub\Test\TestConfig\ArrayDataSet;
|
||||||
|
|
||||||
@ -19,12 +20,13 @@ class ActivityPubTest extends SQLiteTestCase
|
|||||||
* @depends testItCreatesSchema
|
* @depends testItCreatesSchema
|
||||||
*/
|
*/
|
||||||
public function testItUpdatesSchema() {
|
public function testItUpdatesSchema() {
|
||||||
$activityPub = new ActivityPub(array(
|
$config = ActivityPubConfig::createBuilder()
|
||||||
'dbOptions' => array(
|
->setDbConnectionParams( array(
|
||||||
'driver' => 'pdo_sqlite',
|
'driver' => 'pdo_sqlite',
|
||||||
'path' => $this->getDbPath(),
|
'path' => $this->getDbPath(),
|
||||||
),
|
) )
|
||||||
) );
|
->build();
|
||||||
|
$activityPub = new ActivityPub( $config );
|
||||||
$activityPub->updateSchema();
|
$activityPub->updateSchema();
|
||||||
$this->assertTrue( file_exists( $this->getDbPath() ) );
|
$this->assertTrue( file_exists( $this->getDbPath() ) );
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace ActivityPub\Test\Config;
|
namespace ActivityPub\Test\Config;
|
||||||
|
|
||||||
|
use ActivityPub\Config\ActivityPubConfig;
|
||||||
use ActivityPub\Config\ActivityPubModule;
|
use ActivityPub\Config\ActivityPubModule;
|
||||||
use ActivityPub\Http\Router;
|
use ActivityPub\Http\Router;
|
||||||
use Doctrine\ORM\EntityManager;
|
use Doctrine\ORM\EntityManager;
|
||||||
@ -12,13 +13,13 @@ class ActivityPubModuleTest extends TestCase
|
|||||||
|
|
||||||
public function setUp()
|
public function setUp()
|
||||||
{
|
{
|
||||||
$opts = array(
|
$config = ActivityPubConfig::createBuilder()
|
||||||
'dbOptions' => array(
|
->setDbConnectionParams( array(
|
||||||
'driver' => 'pdo_sqlite',
|
'driver' => 'pdo_sqlite',
|
||||||
'path' => ':memory:',
|
'path' => ':memory:',
|
||||||
),
|
) )
|
||||||
);
|
->build();
|
||||||
$this->module = new ActivityPubModule( $opts );
|
$this->module = new ActivityPubModule( $config );
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItInjects()
|
public function testItInjects()
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
namespace ActivityPub\Test\TestConfig;
|
namespace ActivityPub\Test\TestConfig;
|
||||||
|
|
||||||
use ActivityPub\ActivityPub;
|
use ActivityPub\ActivityPub;
|
||||||
|
use ActivityPub\Config\ActivityPubConfig;
|
||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
use PHPUnit\DbUnit\TestCaseTrait;
|
use PHPUnit\DbUnit\TestCaseTrait;
|
||||||
use PHPUnit\DbUnit\Operation\Composite;
|
use PHPUnit\DbUnit\Operation\Composite;
|
||||||
@ -22,12 +23,13 @@ abstract class SQLiteTestCase extends TestCase
|
|||||||
if ( file_exists( $dbPath ) ) {
|
if ( file_exists( $dbPath ) ) {
|
||||||
unlink( $dbPath );
|
unlink( $dbPath );
|
||||||
}
|
}
|
||||||
$activityPub = new ActivityPub( array(
|
$config = ActivityPubConfig::createBuilder()
|
||||||
'dbOptions' => array(
|
->setDbConnectionParams( array(
|
||||||
'driver' => 'pdo_sqlite',
|
'driver' => 'pdo_sqlite',
|
||||||
'path' => $dbPath,
|
'path' => $dbPath,
|
||||||
),
|
) )
|
||||||
) );
|
->build();
|
||||||
|
$activityPub = new ActivityPub( $config );
|
||||||
$activityPub->updateSchema();
|
$activityPub->updateSchema();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,16 +2,18 @@
|
|||||||
namespace ActivityPub\Test;
|
namespace ActivityPub\Test;
|
||||||
|
|
||||||
use ActivityPub\ActivityPub;
|
use ActivityPub\ActivityPub;
|
||||||
|
use ActivityPub\Config\ActivityPubConfig;
|
||||||
|
|
||||||
$dbPath = dirname( __FILE__ ) . '/../db.sqlite';
|
$dbPath = dirname( __FILE__ ) . '/../db.sqlite';
|
||||||
if ( file_exists( $dbPath ) ) {
|
if ( file_exists( $dbPath ) ) {
|
||||||
unlink( $dbPath );
|
unlink( $dbPath );
|
||||||
}
|
}
|
||||||
$activityPub = new ActivityPub( array(
|
$config = ActivityPubConfig::createBuilder()
|
||||||
'dbOptions' => array(
|
->setDbConnectionParams( array(
|
||||||
'driver' => 'pdo_sqlite',
|
'driver' => 'pdo_sqlite',
|
||||||
'path' => $dbPath,
|
'path' => $dbPath,
|
||||||
),
|
) )
|
||||||
) );
|
->build();
|
||||||
|
$activityPub = new ActivityPub( $config );
|
||||||
$activityPub->updateSchema();
|
$activityPub->updateSchema();
|
||||||
?>
|
?>
|
||||||
|
Loading…
Reference in New Issue
Block a user