Skip to content

Commit

Permalink
API Move various classes to more appropriate namespaces
Browse files Browse the repository at this point in the history
Also rename ViewableData to ModelData ahead of the template layer
lift-and-shift
  • Loading branch information
GuySartorelli committed Sep 17, 2024
1 parent dc13324 commit bd0068b
Show file tree
Hide file tree
Showing 269 changed files with 976 additions and 964 deletions.
2 changes: 2 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@
"SilverStripe\\i18n\\Tests\\": "tests/php/i18n/",
"SilverStripe\\Logging\\": "src/Logging/",
"SilverStripe\\Logging\\Tests\\": "tests/php/Logging/",
"SilverStripe\\Model\\": "src/Model/",
"SilverStripe\\Model\\Tests\\": "tests/php/Model/",
"SilverStripe\\ORM\\": "src/ORM/",
"SilverStripe\\ORM\\Tests\\": "tests/php/ORM/",
"SilverStripe\\Security\\": "src/Security/",
Expand Down
2 changes: 1 addition & 1 deletion src/Control/Controller.php
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ protected function prepareResponse($response)
}
$this->setResponse($response);
} else {
// Could be Controller, or ViewableData_Customised controller wrapper
// Could be Controller, or ModelDataCustomised controller wrapper
if (ClassInfo::hasMethod($response, 'getViewer')) {
if (isset($_REQUEST['debug_request'])) {
$class = static::class;
Expand Down
14 changes: 7 additions & 7 deletions src/Control/Email/Email.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
use SilverStripe\Core\Injector\Injectable;
use SilverStripe\Core\Injector\Injector;
use SilverStripe\ORM\FieldType\DBField;
use SilverStripe\View\ArrayData;
use SilverStripe\Model\ArrayData;
use SilverStripe\View\Requirements;
use SilverStripe\View\SSViewer;
use SilverStripe\View\ThemeResourceLoader;
use SilverStripe\View\ViewableData;
use SilverStripe\Model\ModelData;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Email as SymfonyEmail;
Expand Down Expand Up @@ -56,9 +56,9 @@ class Email extends SymfonyEmail

/**
* Additional data available in a template.
* Used in the same way than {@link ViewableData->customize()}.
* Used in the same way than {@link ModelData->customize()}.
*/
private ViewableData $data;
private ModelData $data;

private bool $dataHasBeenSet = false;

Expand Down Expand Up @@ -194,7 +194,7 @@ public function __construct(
if ($returnPath) {
$this->setReturnPath($returnPath);
}
$this->data = ViewableData::create();
$this->data = ModelData::create();
}

private function getDefaultFrom(): string|array
Expand Down Expand Up @@ -336,7 +336,7 @@ public function addAttachmentFromData(string $data, string $name, string $mime =
* IsEmail: used to detect if rendering an email template rather than a page template
* BaseUrl: used to get the base URL for the email
*/
public function getData(): ViewableData
public function getData(): ModelData
{
$extraData = [
'IsEmail' => true,
Expand All @@ -357,7 +357,7 @@ public function getData(): ViewableData
*
* Calling setData() once means that any content set via text()/html()/setBody() will have no effect
*/
public function setData(array|ViewableData $data)
public function setData(array|ModelData $data)
{
if (is_array($data)) {
$data = ArrayData::create($data);
Expand Down
2 changes: 1 addition & 1 deletion src/Control/HTTPRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
use BadMethodCallException;
use InvalidArgumentException;
use SilverStripe\Core\ClassInfo;
use SilverStripe\ORM\ArrayLib;
use SilverStripe\Core\ArrayLib;

/**
* Represents a HTTP-request, including a URL that is tokenised for parsing, and a request method
Expand Down
8 changes: 4 additions & 4 deletions src/Control/RSS/RSSFeed.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,23 @@
namespace SilverStripe\Control\RSS;

use SilverStripe\Control\Middleware\HTTPCacheControlMiddleware;
use SilverStripe\ORM\SS_List;
use SilverStripe\ORM\ArrayList;
use SilverStripe\Model\List\SS_List;
use SilverStripe\Model\List\ArrayList;
use SilverStripe\ORM\FieldType\DBHTMLText;
use SilverStripe\Core\Convert;
use SilverStripe\Control\Director;
use SilverStripe\Control\Controller;
use SilverStripe\Control\HTTP;
use SilverStripe\View\Requirements;
use SilverStripe\View\SSViewer;
use SilverStripe\View\ViewableData;
use SilverStripe\Model\ModelData;

/**
* RSSFeed class
*
* This class is used to create an RSS feed.
*/
class RSSFeed extends ViewableData
class RSSFeed extends ModelData
{

/**
Expand Down
6 changes: 3 additions & 3 deletions src/Control/RSS/RSSFeed_Entry.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use SilverStripe\Control\Director;
use SilverStripe\ORM\FieldType\DBField;
use SilverStripe\ORM\FieldType\DBHTMLText;
use SilverStripe\View\ViewableData;
use SilverStripe\Model\ModelData;
use BadMethodCallException;

/**
Expand All @@ -15,7 +15,7 @@
*
* @see RSSFeed
*/
class RSSFeed_Entry extends ViewableData
class RSSFeed_Entry extends ModelData
{
/**
* Name of the title field of feed entries
Expand All @@ -40,7 +40,7 @@ class RSSFeed_Entry extends ViewableData

/**
* Create a new RSSFeed entry.
* @param ViewableData $entry
* @param ModelData $entry
* @param string $titleField
* @param string $descriptionField
* @param string $authorField
Expand Down
10 changes: 5 additions & 5 deletions src/Control/RequestHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
use SilverStripe\Security\Permission;
use SilverStripe\Security\PermissionFailureException;
use SilverStripe\Security\Security;
use SilverStripe\View\ViewableData;
use SilverStripe\Model\ModelData;

/**
* This class is the base class of any SilverStripe object that can be used to handle HTTP requests.
Expand Down Expand Up @@ -45,7 +45,7 @@
*
* {@link RequestHandler::handleRequest()} is where this behaviour is implemented.
*/
class RequestHandler extends ViewableData
class RequestHandler extends ModelData
{

/**
Expand Down Expand Up @@ -130,7 +130,7 @@ public function __construct()
/**
* Handles URL requests.
*
* - ViewableData::handleRequest() iterates through each rule in {@link RequestHandler::$url_handlers}.
* - ModelData::handleRequest() iterates through each rule in {@link RequestHandler::$url_handlers}.
* - If the rule matches, the named method will be called.
* - If there is still more URL to be processed, then handleRequest()
* is called on the object that that method returns.
Expand Down Expand Up @@ -248,8 +248,8 @@ protected function findAction($request)
{
$handlerClass = static::class;

// We stop after RequestHandler; in other words, at ViewableData
while ($handlerClass && $handlerClass != ViewableData::class) {
// We stop after RequestHandler; in other words, at ModelData
while ($handlerClass && $handlerClass != ModelData::class) {
$urlHandlers = Config::inst()->get($handlerClass, 'url_handlers', Config::UNINHERITED);

if ($urlHandlers) {
Expand Down
68 changes: 2 additions & 66 deletions src/ORM/ArrayLib.php → src/Core/ArrayLib.php
Original file line number Diff line number Diff line change
@@ -1,23 +1,14 @@
<?php

namespace SilverStripe\ORM;
namespace SilverStripe\Core;

use Generator;
use SilverStripe\Dev\Deprecation;

/**
* Library of static methods for manipulating arrays.
* @deprecated 5.4.0 Will be renamed to SilverStripe\Core\ArrayLib
*/
class ArrayLib
{
public function __construct()
{
Deprecation::withNoReplacement(function () {
Deprecation::notice('5.4.0', 'Will be renamed to SilverStripe\Core\ArrayLib', Deprecation::SCOPE_CLASS);
});
}

/**
* Inverses the first and second level keys of an associative
* array, keying the result by the second level, and combines
Expand Down Expand Up @@ -53,14 +44,9 @@ public function __construct()
*
* @param array $arr
* @return array
* @deprecated 5.4.0 Will be renamed to SilverStripe\Core\ArrayLib::invert()
*/
public static function invert($arr)
{
Deprecation::withNoReplacement(function () {
Deprecation::notice('5.4.0', 'Will be renamed to SilverStripe\Core\ArrayLib::invert()');
});

if (!$arr) {
return [];
}
Expand All @@ -81,14 +67,9 @@ public static function invert($arr)
*
* @param $arr array
* @return array
* @deprecated 5.4.0 Will be renamed to SilverStripe\Core\ArrayLib::valuekey()
*/
public static function valuekey($arr)
{
Deprecation::withNoReplacement(function () {
Deprecation::notice('5.4.0', 'Will be renamed to SilverStripe\Core\ArrayLib::valuekey()');
});

return array_combine($arr ?? [], $arr ?? []);
}

Expand All @@ -97,14 +78,9 @@ public static function valuekey($arr)
*
* @param array $array
* @return array
* @deprecated 5.4.0 Will be renamed to SilverStripe\Core\ArrayLib::array_values_recursive()
*/
public static function array_values_recursive($array)
{
Deprecation::withNoReplacement(function () {
Deprecation::notice('5.4.0', 'Will be renamed to SilverStripe\Core\ArrayLib::invearray_values_recursivert()');
});

return ArrayLib::flatten($array, false);
}

Expand All @@ -116,14 +92,9 @@ public static function array_values_recursive($array)
* @param $keys array
*
* @return array
* @deprecated 5.4.0 Will be renamed to SilverStripe\Core\ArrayLib::filter_keys()
*/
public static function filter_keys($arr, $keys)
{
Deprecation::withNoReplacement(function () {
Deprecation::notice('5.4.0', 'Will be renamed to SilverStripe\Core\ArrayLib::filter_keys()');
});

foreach ($arr as $key => $v) {
if (!in_array($key, $keys ?? [])) {
unset($arr[$key]);
Expand All @@ -142,14 +113,9 @@ public static function filter_keys($arr, $keys)
* @param array $array
*
* @return boolean
* @deprecated 5.4.0 Will be renamed to SilverStripe\Core\ArrayLib::is_associative()
*/
public static function is_associative($array)
{
Deprecation::withNoReplacement(function () {
Deprecation::notice('5.4.0', 'Will be renamed to SilverStripe\Core\ArrayLib::is_associative()');
});

$isAssociative = !empty($array)
&& is_array($array)
&& ($array !== array_values($array ?? []));
Expand All @@ -168,14 +134,9 @@ public static function is_associative($array)
* @param boolean $strict
*
* @return boolean
* @deprecated 5.4.0 Will be renamed to SilverStripe\Core\ArrayLib::in_array_recursive()
*/
public static function in_array_recursive($needle, $haystack, $strict = false)
{
Deprecation::withNoReplacement(function () {
Deprecation::notice('5.4.0', 'Will be renamed to SilverStripe\Core\ArrayLib::in_array_recursive()');
});

if (!is_array($haystack)) {
return false;
}
Expand All @@ -201,14 +162,9 @@ public static function in_array_recursive($needle, $haystack, $strict = false)
* @param $f callback to apply
* @param $array array
* @return array
* @deprecated 5.4.0 Will be renamed to SilverStripe\Core\ArrayLib::array_map_recursive()
*/
public static function array_map_recursive($f, $array)
{
Deprecation::withNoReplacement(function () {
Deprecation::notice('5.4.0', 'Will be renamed to SilverStripe\Core\ArrayLib::array_map_recursive()');
});

$applyOrRecurse = function ($v) use ($f) {
return is_array($v) ? ArrayLib::array_map_recursive($f, $v) : call_user_func($f, $v);
};
Expand All @@ -227,14 +183,9 @@ public static function array_map_recursive($f, $array)
* @param array $array
*
* @return array
* @deprecated 5.4.0 Will be renamed to SilverStripe\Core\ArrayLib::array_merge_recursive()
*/
public static function array_merge_recursive($array)
{
Deprecation::withNoReplacement(function () {
Deprecation::notice('5.4.0', 'Will be renamed to SilverStripe\Core\ArrayLib::array_merge_recursive()');
});

$arrays = func_get_args();
$merged = [];

Expand All @@ -247,7 +198,7 @@ public static function array_merge_recursive($array)

if (!is_array($array)) {
trigger_error(
'SilverStripe\ORM\ArrayLib::array_merge_recursive() encountered a non array argument',
'SilverStripe\Core\ArrayLib::array_merge_recursive() encountered a non array argument',
E_USER_WARNING
);
return [];
Expand Down Expand Up @@ -277,14 +228,9 @@ public static function array_merge_recursive($array)
* @param array $out
*
* @return array
* @deprecated 5.4.0 Will be renamed to SilverStripe\Core\ArrayLib::flatten()
*/
public static function flatten($array, $preserveKeys = true, &$out = [])
{
Deprecation::withNoReplacement(function () {
Deprecation::notice('5.4.0', 'Will be renamed to SilverStripe\Core\ArrayLib::flatten()');
});

array_walk_recursive(
$array,
function ($value, $key) use (&$out, $preserveKeys) {
Expand All @@ -309,14 +255,9 @@ function ($value, $key) use (&$out, $preserveKeys) {
*
* @param array $list
* @return Generator
* @deprecated 5.4.0 Will be renamed to SilverStripe\Core\ArrayLib::iterateVolatile()
*/
public static function iterateVolatile(array &$list)
{
Deprecation::withNoReplacement(function () {
Deprecation::notice('5.4.0', 'Will be renamed to SilverStripe\Core\ArrayLib::iterateVolatile()');
});

// Keyed by already-iterated items
$iterated = [];
// Get all items not yet iterated
Expand All @@ -336,14 +277,9 @@ public static function iterateVolatile(array &$list)
/**
* Similar to shuffle, but retains the existing association between the keys and the values.
* Shuffles the array in place.
* @deprecated 5.4.0 Will be renamed to SilverStripe\Core\ArrayLib::shuffleAssociative()
*/
public static function shuffleAssociative(array &$array): void
{
Deprecation::withNoReplacement(function () {
Deprecation::notice('5.4.0', 'Will be renamed to SilverStripe\Core\ArrayLib::shuffleAssociative()');
});

$shuffledArray = [];
$keys = array_keys($array);
shuffle($keys);
Expand Down
4 changes: 2 additions & 2 deletions src/Core/ClassInfo.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
use SilverStripe\Core\Manifest\ClassLoader;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\DB;
use SilverStripe\View\ViewableData;
use SilverStripe\Model\ModelData;
use Psr\SimpleCache\CacheInterface;
use SilverStripe\Core\Flushable;
use SilverStripe\Core\Injector\Injector;
Expand Down Expand Up @@ -585,7 +585,7 @@ public static function classesWithExtension(

// only keep classes with the Extension applied
$classes = array_filter($classes ?? [], function ($class) use ($extensionClass) {
return ViewableData::has_extension($class, $extensionClass);
return ModelData::has_extension($class, $extensionClass);
});

return $classes;
Expand Down
2 changes: 1 addition & 1 deletion src/Core/Convert.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
* html: HTML source suitable for use in a page or email
* text: Plain-text content, suitable for display to a user as-is, or insertion in a plaintext email.
*
* Objects of type {@link ViewableData} can have an "escaping type",
* Objects of type {@link ModelData} can have an "escaping type",
* which determines if they are automatically escaped before output by {@link SSViewer}.
*/
class Convert
Expand Down
Loading

0 comments on commit bd0068b

Please sign in to comment.