From 8e9cf4fd2e23691a9b4fbae5b3c96d19da7d2ec3 Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Wed, 15 Jul 2015 23:16:57 +0200 Subject: [PATCH 01/12] Move settings repositories to own namespace Also add a third method to the contract. This will help with building a caching decorator. --- src/Core/{ => Settings}/DatabaseSettingsRepository.php | 9 +++++++-- .../SettingsRepository.php} | 6 ++++-- 2 files changed, 11 insertions(+), 4 deletions(-) rename src/Core/{ => Settings}/DatabaseSettingsRepository.php (73%) rename src/Core/{SettingsRepositoryInterface.php => Settings/SettingsRepository.php} (52%) diff --git a/src/Core/DatabaseSettingsRepository.php b/src/Core/Settings/DatabaseSettingsRepository.php similarity index 73% rename from src/Core/DatabaseSettingsRepository.php rename to src/Core/Settings/DatabaseSettingsRepository.php index c7d86d5c2..ec726eefe 100644 --- a/src/Core/DatabaseSettingsRepository.php +++ b/src/Core/Settings/DatabaseSettingsRepository.php @@ -1,10 +1,10 @@ database = $connection; } + public function all() + { + return $this->database->table('config')->lists('value', 'key'); + } + public function get($key, $default = null) { if (is_null($value = $this->database->table('config')->where('key', $key)->pluck('value'))) { diff --git a/src/Core/SettingsRepositoryInterface.php b/src/Core/Settings/SettingsRepository.php similarity index 52% rename from src/Core/SettingsRepositoryInterface.php rename to src/Core/Settings/SettingsRepository.php index 5007e0f06..1b226236e 100644 --- a/src/Core/SettingsRepositoryInterface.php +++ b/src/Core/Settings/SettingsRepository.php @@ -1,9 +1,11 @@ Date: Wed, 15 Jul 2015 23:17:53 +0200 Subject: [PATCH 02/12] Build a caching repository decorator for settings --- .../Settings/CachedSettingsRepository.php | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/Core/Settings/CachedSettingsRepository.php diff --git a/src/Core/Settings/CachedSettingsRepository.php b/src/Core/Settings/CachedSettingsRepository.php new file mode 100644 index 000000000..0f5cb3c8f --- /dev/null +++ b/src/Core/Settings/CachedSettingsRepository.php @@ -0,0 +1,45 @@ +inner = $inner; + } + + public function all() + { + if (!$this->isCached) { + $this->cache = $this->inner->all(); + $this->isCached = true; + } + + return $this->cache; + } + + public function get($key, $default = null) + { + if (array_key_exists($key, $this->cache)) { + return $this->cache[$key]; + } else if (!$this->isCached) { + return array_get($this->all(), $key, $default); + } + + return $default; + } + + public function set($key, $value) + { + $this->cache[$key] = $value; + + $this->inner->set($key, $value); + } +} From 8a1b2fcedee5e9b389794a8fa9f0680bb52e3c72 Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Wed, 15 Jul 2015 23:47:30 +0200 Subject: [PATCH 03/12] Install PhpSpec --- composer.json | 3 +- composer.lock | 165 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 165 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 9122bc4c3..d7e66e32c 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,8 @@ "codeception/codeception": "~2.0.0", "codeception/mockery-module": "*", "laracasts/testdummy": "~2.0", - "squizlabs/php_codesniffer": "2.*" + "squizlabs/php_codesniffer": "2.*", + "phpspec/phpspec": "^2.2" }, "autoload": { "psr-4": { diff --git a/composer.lock b/composer.lock index 2ee4e0071..ed93e5a0e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "09afef66b65df77878c1bdd8d51b1eab", + "hash": "6f47932716cfbd88646a021ea58c18b5", "packages": [ { "name": "danielstjules/stringy", @@ -856,7 +856,7 @@ }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tobscure/json-api/zipball/fe013caafe9ed0797b1b6abb116d514b301fbf1c", + "url": "https://api.github.com/repos/tobscure/json-api/zipball/2629b6f48eb380973848c7e5fc36d41f33b305b3", "reference": "fe013caafe9ed0797b1b6abb116d514b301fbf1c", "shasum": "" }, @@ -1600,6 +1600,118 @@ ], "time": "2015-02-03 12:10:50" }, + { + "name": "phpspec/php-diff", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/phpspec/php-diff.git", + "reference": "30e103d19519fe678ae64a60d77884ef3d71b28a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/php-diff/zipball/30e103d19519fe678ae64a60d77884ef3d71b28a", + "reference": "30e103d19519fe678ae64a60d77884ef3d71b28a", + "shasum": "" + }, + "type": "library", + "autoload": { + "psr-0": { + "Diff": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Chris Boulton", + "homepage": "http://github.com/chrisboulton", + "role": "Original developer" + } + ], + "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).", + "time": "2013-11-01 13:02:21" + }, + { + "name": "phpspec/phpspec", + "version": "2.2.1", + "source": { + "type": "git", + "url": "https://github.com/phpspec/phpspec.git", + "reference": "e9a40577323e67f1de2e214abf32976a0352d8f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/phpspec/zipball/e9a40577323e67f1de2e214abf32976a0352d8f8", + "reference": "e9a40577323e67f1de2e214abf32976a0352d8f8", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.0.1", + "php": ">=5.3.3", + "phpspec/php-diff": "~1.0.0", + "phpspec/prophecy": "~1.4", + "sebastian/exporter": "~1.0", + "symfony/console": "~2.3", + "symfony/event-dispatcher": "~2.1", + "symfony/finder": "~2.1", + "symfony/process": "~2.1", + "symfony/yaml": "~2.1" + }, + "require-dev": { + "behat/behat": "^3.0.11", + "bossa/phpspec2-expect": "~1.0", + "phpunit/phpunit": "~4.4", + "symfony/filesystem": "~2.1", + "symfony/process": "~2.1" + }, + "suggest": { + "phpspec/nyan-formatters": "~1.0 – Adds Nyan formatters" + }, + "bin": [ + "bin/phpspec" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "autoload": { + "psr-0": { + "PhpSpec": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "homepage": "http://marcelloduarte.net/" + } + ], + "description": "Specification-oriented BDD framework for PHP 5.3+", + "homepage": "http://phpspec.net/", + "keywords": [ + "BDD", + "SpecBDD", + "TDD", + "spec", + "specification", + "testing", + "tests" + ], + "time": "2015-05-30 15:21:40" + }, { "name": "phpspec/prophecy", "version": "v1.4.1", @@ -2841,6 +2953,55 @@ "homepage": "https://symfony.com", "time": "2015-06-04 20:11:48" }, + { + "name": "symfony/process", + "version": "v2.7.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/Process.git", + "reference": "48aeb0e48600321c272955132d7606ab0a49adb3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/Process/zipball/48aeb0e48600321c272955132d7606ab0a49adb3", + "reference": "48aeb0e48600321c272955132d7606ab0a49adb3", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "time": "2015-07-01 11:25:50" + }, { "name": "symfony/yaml", "version": "v2.7.1", From 1b39d85a7b3cc58919357645c6d5012b793f59e1 Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Wed, 15 Jul 2015 23:47:56 +0200 Subject: [PATCH 04/12] Write some specs for settings cache repository --- .../Settings/CachedSettingsRepositorySpec.php | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 spec/Flarum/Core/Settings/CachedSettingsRepositorySpec.php diff --git a/spec/Flarum/Core/Settings/CachedSettingsRepositorySpec.php b/spec/Flarum/Core/Settings/CachedSettingsRepositorySpec.php new file mode 100644 index 000000000..4119fcee6 --- /dev/null +++ b/spec/Flarum/Core/Settings/CachedSettingsRepositorySpec.php @@ -0,0 +1,54 @@ +beConstructedWith($inner); + } + + function it_is_initializable() + { + $this->shouldHaveType('Flarum\Core\Settings\CachedSettingsRepository'); + } + + function it_retrieves_data_from_inner(SettingsRepository $inner) + { + $settings = ['a' => 1, 'b' => 2]; + $inner->all()->willReturn($settings); + $inner->all()->shouldBeCalled(); + + // Test fetching all settings + $this->all()->shouldReturn($settings); + + // Test fetching single settings + $this->get('a')->shouldReturn(1); + $this->get('b')->shouldReturn(2); + + // Test invalid key + $this->get('c')->shouldReturn(null); + + // Test invalid key with custom default + $this->get('d', 'foobar')->shouldReturn('foobar'); + } + + function it_passes_new_data_to_inner(SettingsRepository $inner) + { + $this->set('a', 1); + $inner->set('a', 1)->shouldHaveBeenCalled(); + } + + function it_caches_new_data(SettingsRepository $inner) + { + $this->set('b', 2); + $this->get('b')->shouldReturn(2); + $inner->all()->shouldNotHaveBeenCalled(); + $inner->get('b')->shouldNotHaveBeenCalled(); + } +} From 1675d26723a3c77a85f0b7195150e6f89e0fb909 Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Wed, 15 Jul 2015 23:52:03 +0200 Subject: [PATCH 05/12] Run PhpSpec on TravisCI --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index b074b2100..89340f880 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,6 +14,7 @@ before_script: script: - vendor/bin/phpcs --standard=PSR2 -np src + - vendor/bin/phpspec run notifications: email: From 6a7889934cfd0deab7f3e748ebd8ef72578f2713 Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Wed, 15 Jul 2015 23:54:56 +0200 Subject: [PATCH 06/12] Register database and cache implementations as binding for the settings repository --- src/Core.php | 6 +----- src/Core/CoreServiceProvider.php | 10 ++++++++++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Core.php b/src/Core.php index 8772d1f27..f7ba7546c 100644 --- a/src/Core.php +++ b/src/Core.php @@ -18,10 +18,6 @@ class Core return $default; } - if (is_null($value = app('flarum.db')->table('config')->where('key', $key)->pluck('value'))) { - $value = $default; - } - - return $value; + return app('Flarum\Core\Settings\SettingsRepository')->get($key, $default); } } diff --git a/src/Core/CoreServiceProvider.php b/src/Core/CoreServiceProvider.php index a33ebda76..cb49ded2b 100644 --- a/src/Core/CoreServiceProvider.php +++ b/src/Core/CoreServiceProvider.php @@ -1,5 +1,7 @@ app->singleton('Flarum\Core\Settings\SettingsRepository', function() { + return new CachedSettingsRepository( + new DatabaseSettingsRepository( + $this->app->make('Illuminate\Database\ConnectionInterface') + ) + ); + }); + $this->app->singleton('flarum.forum', 'Flarum\Core\Forum'); // TODO: probably use Illuminate's AggregateServiceProvider From 31e9f44dfb8b197caec2e2c915dafcdb537a34d2 Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Thu, 16 Jul 2015 00:10:52 +0200 Subject: [PATCH 07/12] Rename caching setting repository implementation I'm foreseeing another implementation that uses real caching (across requests). --- ...positorySpec.php => MemoryCacheSettingsRepositorySpec.php} | 4 ++-- src/Core/CoreServiceProvider.php | 4 ++-- ...ttingsRepository.php => MemoryCacheSettingsRepository.php} | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) rename spec/Flarum/Core/Settings/{CachedSettingsRepositorySpec.php => MemoryCacheSettingsRepositorySpec.php} (89%) rename src/Core/Settings/{CachedSettingsRepository.php => MemoryCacheSettingsRepository.php} (92%) diff --git a/spec/Flarum/Core/Settings/CachedSettingsRepositorySpec.php b/spec/Flarum/Core/Settings/MemoryCacheSettingsRepositorySpec.php similarity index 89% rename from spec/Flarum/Core/Settings/CachedSettingsRepositorySpec.php rename to spec/Flarum/Core/Settings/MemoryCacheSettingsRepositorySpec.php index 4119fcee6..7459b9e33 100644 --- a/spec/Flarum/Core/Settings/CachedSettingsRepositorySpec.php +++ b/spec/Flarum/Core/Settings/MemoryCacheSettingsRepositorySpec.php @@ -6,7 +6,7 @@ use Flarum\Core\Settings\SettingsRepository; use PhpSpec\ObjectBehavior; use Prophecy\Argument; -class CachedSettingsRepositorySpec extends ObjectBehavior +class MemoryCacheSettingsRepositorySpec extends ObjectBehavior { function let(SettingsRepository $inner) { @@ -15,7 +15,7 @@ class CachedSettingsRepositorySpec extends ObjectBehavior function it_is_initializable() { - $this->shouldHaveType('Flarum\Core\Settings\CachedSettingsRepository'); + $this->shouldHaveType('Flarum\Core\Settings\MemoryCacheSettingsRepository'); } function it_retrieves_data_from_inner(SettingsRepository $inner) diff --git a/src/Core/CoreServiceProvider.php b/src/Core/CoreServiceProvider.php index cb49ded2b..ed3618bab 100644 --- a/src/Core/CoreServiceProvider.php +++ b/src/Core/CoreServiceProvider.php @@ -1,6 +1,6 @@ app->singleton('Flarum\Core\Settings\SettingsRepository', function() { - return new CachedSettingsRepository( + return new MemoryCacheSettingsRepository( new DatabaseSettingsRepository( $this->app->make('Illuminate\Database\ConnectionInterface') ) diff --git a/src/Core/Settings/CachedSettingsRepository.php b/src/Core/Settings/MemoryCacheSettingsRepository.php similarity index 92% rename from src/Core/Settings/CachedSettingsRepository.php rename to src/Core/Settings/MemoryCacheSettingsRepository.php index 0f5cb3c8f..777a7f5c7 100644 --- a/src/Core/Settings/CachedSettingsRepository.php +++ b/src/Core/Settings/MemoryCacheSettingsRepository.php @@ -2,7 +2,7 @@ namespace Flarum\Core\Settings; -class CachedSettingsRepository implements SettingsRepository +class MemoryCacheSettingsRepository implements SettingsRepository { protected $inner; From c2bf0b6b3a6a87ee5995439a0f928c86f614e6ee Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Thu, 16 Jul 2015 00:32:50 +0200 Subject: [PATCH 08/12] Inject SettingsRepository where possible --- .../Commands/RequestPasswordResetHandler.php | 19 ++++++++++++++++--- .../Listeners/EmailConfirmationMailer.php | 14 +++++++++++--- src/Support/ClientAction.php | 19 +++++++++++++------ 3 files changed, 40 insertions(+), 12 deletions(-) diff --git a/src/Core/Users/Commands/RequestPasswordResetHandler.php b/src/Core/Users/Commands/RequestPasswordResetHandler.php index 8c86ab41c..448052db5 100644 --- a/src/Core/Users/Commands/RequestPasswordResetHandler.php +++ b/src/Core/Users/Commands/RequestPasswordResetHandler.php @@ -1,5 +1,6 @@ users = $users; + $this->settings = $settings; $this->mailer = $mailer; $this->url = $url; } @@ -53,8 +66,8 @@ class RequestPasswordResetHandler // password route be part of core?? $data = [ 'username' => $user->username, - 'url' => Core::config('base_url').'/reset/'.$token->id, - 'forumTitle' => Core::config('forum_title') + 'url' => $this->settings->get('base_url').'/reset/'.$token->id, + 'forumTitle' => $this->settings->get('forum_title'), ]; $this->mailer->send(['text' => 'flarum::emails.resetPassword'], $data, function (Message $message) use ($user) { diff --git a/src/Core/Users/Listeners/EmailConfirmationMailer.php b/src/Core/Users/Listeners/EmailConfirmationMailer.php index cc259a077..111d3851a 100755 --- a/src/Core/Users/Listeners/EmailConfirmationMailer.php +++ b/src/Core/Users/Listeners/EmailConfirmationMailer.php @@ -1,5 +1,6 @@ settings = $settings; $this->mailer = $mailer; } @@ -90,8 +98,8 @@ class EmailConfirmationMailer // email route be part of core?? return [ 'username' => $user->username, - 'url' => Core::config('base_url').'/confirm/'.$token->id, - 'forumTitle' => Core::config('forum_title') + 'url' => $this->settings->get('base_url').'/confirm/'.$token->id, + 'forumTitle' => $this->settings->get('forum_title') ]; } } diff --git a/src/Support/ClientAction.php b/src/Support/ClientAction.php index d75c1e744..3ad5c5a96 100644 --- a/src/Support/ClientAction.php +++ b/src/Support/ClientAction.php @@ -5,6 +5,7 @@ use Flarum\Assets\AssetManager; use Flarum\Assets\JsCompiler; use Flarum\Assets\LessCompiler; use Flarum\Core; +use Flarum\Core\Settings\SettingsRepository; use Flarum\Core\Users\User; use Flarum\Locale\JsCompiler as LocaleJsCompiler; use Flarum\Locale\LocaleManager; @@ -61,14 +62,20 @@ abstract class ClientAction extends HtmlAction */ protected $locales; + /** + * @var SettingsRepository + */ + protected $settings; + /** * @param Client $apiClient * @param LocaleManager $locales */ - public function __construct(Client $apiClient, LocaleManager $locales) + public function __construct(Client $apiClient, LocaleManager $locales, SettingsRepository $settings) { $this->apiClient = $apiClient; $this->locales = $locales; + $this->settings = $settings; } /** @@ -156,7 +163,7 @@ abstract class ClientAction extends HtmlAction $assets->addLess("@$name: $value;"); } - $assets->addLess(Core::config('custom_less')); + $assets->addLess($this->settings->get('custom_less')); } /** @@ -168,10 +175,10 @@ abstract class ClientAction extends HtmlAction protected function getLessVariables() { return [ - 'fl-primary-color' => Core::config('theme_primary_color', '#000'), - 'fl-secondary-color' => Core::config('theme_secondary_color', '#000'), - 'fl-dark-mode' => Core::config('theme_dark_mode') ? 'true' : 'false', - 'fl-colored-header' => Core::config('theme_colored_header') ? 'true' : 'false' + 'fl-primary-color' => $this->settings->get('theme_primary_color', '#000'), + 'fl-secondary-color' => $this->settings->get('theme_secondary_color', '#000'), + 'fl-dark-mode' => $this->settings->get('theme_dark_mode') ? 'true' : 'false', + 'fl-colored-header' => $this->settings->get('theme_colored_header') ? 'true' : 'false' ]; } From 6b3a86dd87392e4504732f2feab354c8466b81a5 Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Thu, 16 Jul 2015 00:35:41 +0200 Subject: [PATCH 09/12] Move extension loading to boot method This will likely have to be reverted, to make things like $this->app->extend() work reasonably well in extensions' service providers. For now, since we fetch the enabled extensions from the config, there is no other way for us to guarantee that the config is already available. --- src/Support/Extensions/ExtensionsServiceProvider.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Support/Extensions/ExtensionsServiceProvider.php b/src/Support/Extensions/ExtensionsServiceProvider.php index f986dc062..606b9908e 100644 --- a/src/Support/Extensions/ExtensionsServiceProvider.php +++ b/src/Support/Extensions/ExtensionsServiceProvider.php @@ -11,13 +11,23 @@ class ExtensionsServiceProvider extends ServiceProvider * @return void */ public function register() + { + } + + /** + * Boot the service provider. + * + * @return void + */ + public function boot() { // Extensions will not be registered if Flarum is not installed yet if (!Core::isInstalled()) { return; } - $extensions = json_decode(Core::config('extensions_enabled'), true); + $config = $this->app->make('Flarum\Core\Settings\SettingsRepository')->get('extensions_enabled'); + $extensions = json_decode($config, true); $providers = []; foreach ($extensions as $extension) { From 9af1519864a926b2149e142b689eefac4dcfbb45 Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Thu, 16 Jul 2015 00:38:27 +0200 Subject: [PATCH 10/12] Rename import command --- src/Console/ImportCommand.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Console/ImportCommand.php b/src/Console/ImportCommand.php index bbd31dc2c..ebdf74e65 100644 --- a/src/Console/ImportCommand.php +++ b/src/Console/ImportCommand.php @@ -23,7 +23,7 @@ class ImportCommand extends Command * * @var string */ - protected $name = 'flarum:import'; + protected $name = 'import'; /** * The console command description. From 48c5574c66f93f7a30c89bafe7adb4af315dcb7d Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Thu, 16 Jul 2015 00:43:49 +0200 Subject: [PATCH 11/12] Try to fix some namespace imports --- src/Console/ImportCommand.php | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/Console/ImportCommand.php b/src/Console/ImportCommand.php index ebdf74e65..ae0f3a414 100644 --- a/src/Console/ImportCommand.php +++ b/src/Console/ImportCommand.php @@ -4,15 +4,12 @@ use Illuminate\Console\Command; use Illuminate\Foundation\Application; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Input\InputArgument; -use Flarum\Core\Exceptions\ValidationFailureException; -use Flarum\Core\Models\User; -use Flarum\Core\Models\Discussion; -use Flarum\Core\Models\DiscussionState; -use Flarum\Core\Models\CommentPost; +use Flarum\Core\Users\User; +use Flarum\Core\Discussions\Discussion; +use Flarum\Core\Discussions\DiscussionState; +use Flarum\Core\Posts\CommentPost; use Flarum\Tags\Tag; -use Flarum\Core\Events\PostWasPosted; -use Flarum\Core\Events\UserWasRegistered; -use Flarum\Core\Activity\JoinedActivity; +use Flarum\Core\Posts\Events\PostWasPosted; use Symfony\Component\Console\Helper\ProgressBar; class ImportCommand extends Command From fab9bdb0efe0d9fb604a08410f8b566240ee97de Mon Sep 17 00:00:00 2001 From: Franz Liedke Date: Thu, 16 Jul 2015 00:44:02 +0200 Subject: [PATCH 12/12] Remove unused import --- src/Core/Model.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Core/Model.php b/src/Core/Model.php index f52b21a04..ee461350a 100755 --- a/src/Core/Model.php +++ b/src/Core/Model.php @@ -3,7 +3,6 @@ use Illuminate\Contracts\Validation\Factory; use Illuminate\Database\Eloquent\Model as Eloquent; use Illuminate\Database\Eloquent\Relations\Relation; -use Flarum\Core\Exceptions\ValidationFailureException; use LogicException; /**