Skip to content

Commit

Permalink
autoload
Browse files Browse the repository at this point in the history
  • Loading branch information
timkelty committed Oct 20, 2023
1 parent bc940aa commit 22c1b3d
Show file tree
Hide file tree
Showing 6 changed files with 105 additions and 55 deletions.
8 changes: 8 additions & 0 deletions autoload.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?php

if (!function_exists('craft_modify_app_config')) {
function craft_modify_app_config(array &$config, string $appType): void
{
\craft\cloud\Helper::modifyConfig($config, $appType);
}
}
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"craft\\cloud\\": "src/"
},
"files": [
"src/bootstrap.php"
"autoload.php"
]
},
"config": {
Expand Down
12 changes: 6 additions & 6 deletions composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

57 changes: 50 additions & 7 deletions src/Helper.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,19 @@
namespace craft\cloud;

use Craft;
use craft\cache\DbCache;
use craft\cloud\fs\BuildArtifactsFs;
use craft\cloud\fs\CpResourcesFs;
use craft\cloud\Helper as CloudHelper;
use craft\cloud\queue\Queue;
use craft\db\Table;
use craft\helpers\App;
use craft\helpers\ConfigHelper;
use craft\mutex\Mutex;
use craft\queue\Queue as CraftQueue;
use yii\mutex\MysqlMutex;
use yii\mutex\PgsqlMutex;
use yii\web\DbSession;

class Helper
{
Expand All @@ -32,18 +42,51 @@ public static function setMemoryLimit(int|string $limit, int|string $offset = 0)
return $memoryLimit;
}

public static function getComponents(): array
public static function modifyConfig(array &$config, string $appType): void
{
if (!Helper::isCraftCloud()) {
return [];
if (!CloudHelper::isCraftCloud()) {
return;
}

$components = [
'response' => [
if ($appType === 'web') {
$config['components']['session'] = function() {
return Craft::createObject([
'class' => DbSession::class,
'sessionTable' => Table::PHPSESSIONS,
] + App::sessionConfig());
};

// TODO: make this a behavior instead?
// load Craft's config
$config['components']['response'] = [
'class' => \craft\cloud\web\Response::class,
],
];
}

$config['components']['mutex'] = function() {
return Craft::createObject([
'class' => Mutex::class,
'mutex' => Craft::$app->getDb()->getDriverName() === 'pgsql'
? PgsqlMutex::class
: MysqlMutex::class,
]);
};

$config['components']['cache'] = function() {
return Craft::createObject([
'class' => DbCache::class,
'defaultDuration' => Craft::$app->getConfig()->getGeneral()->cacheDuration,
]);
};

$config['components']['queue'] = [
'class' => CraftQueue::class,
'proxyQueue' => Queue::class,
];

return $components;
$config['components']['assetManager'] = [
'class' => AssetManager::class,
'fs' => Craft::createObject(CpResourcesFs::class),
];
}
}
80 changes: 40 additions & 40 deletions src/Module.php
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,9 @@ public function bootstrap($app): void
Helper::setMemoryLimit(ini_get('memory_limit'), $app->getErrorHandler()->memoryReserveSize);

// TODO: make this a behavior instead?
$app->set('response', [
'class' => \craft\cloud\web\Response::class,
]);
// $app->set('response', [
// 'class' => \craft\cloud\web\Response::class,
// ]);

if (!$app->getRequest()->getIsConsoleRequest()) {
Craft::setAlias('@web', $app->getRequest()->getHostInfo());
Expand All @@ -92,45 +92,45 @@ public function bootstrap($app): void
}

// cache table is created on craft cloud/up
if ($this->getConfig()->enableCache && $app->getDb()->tableExists(Table::CACHE)) {
$app->set('cache', [
'class' => DbCache::class,
'defaultDuration' => $app->getConfig()->getGeneral()->cacheDuration,
]);
}

if (
$this->getConfig()->enableSession &&
!$app->getRequest()->getIsConsoleRequest() &&
$app->getDb()->tableExists(Table::PHPSESSIONS)
) {
$app->set('session', [
'class' => DbSession::class,
'sessionTable' => Table::PHPSESSIONS,
] + App::sessionConfig());
}

if ($this->getConfig()->enableMutex) {
$app->set('mutex', [
'class' => \craft\mutex\Mutex::class,
'mutex' => $app->getDb()->getDriverName() === 'pgsql'
? PgsqlMutex::class
: MysqlMutex::class,
]);
}

if ($this->getConfig()->enableQueue && $this->getConfig()->sqsUrl) {
$app->set('queue', [
'class' => \craft\queue\Queue::class,
'proxyQueue' => Queue::class,
]);
}
// if ($this->getConfig()->enableCache && $app->getDb()->tableExists(Table::CACHE)) {
// $app->set('cache', [
// 'class' => DbCache::class,
// 'defaultDuration' => $app->getConfig()->getGeneral()->cacheDuration,
// ]);
// }

// if (
// $this->getConfig()->enableSession &&
// !$app->getRequest()->getIsConsoleRequest() &&
// $app->getDb()->tableExists(Table::PHPSESSIONS)
// ) {
// $app->set('session', [
// 'class' => DbSession::class,
// 'sessionTable' => Table::PHPSESSIONS,
// ] + App::sessionConfig());
// }
//
// if ($this->getConfig()->enableMutex) {
// $app->set('mutex', [
// 'class' => \craft\mutex\Mutex::class,
// 'mutex' => $app->getDb()->getDriverName() === 'pgsql'
// ? PgsqlMutex::class
// : MysqlMutex::class,
// ]);
// }

// if ($this->getConfig()->enableQueue && $this->getConfig()->sqsUrl) {
// $app->set('queue', [
// 'class' => \craft\queue\Queue::class,
// 'proxyQueue' => Queue::class,
// ]);
// }

if ($this->getConfig()->enableCdn) {
$app->set('assetManager', [
'class' => AssetManager::class,
'fs' => Craft::createObject(CpResourcesFs::class),
]);
// $app->set('assetManager', [
// 'class' => AssetManager::class,
// 'fs' => Craft::createObject(CpResourcesFs::class),
// ]);

$app->getImages()->supportedImageFormats = ImageTransformer::SUPPORTED_IMAGE_FORMATS;

Expand Down
1 change: 0 additions & 1 deletion src/bootstrap.php

This file was deleted.

0 comments on commit 22c1b3d

Please sign in to comment.