sonarrradarrplexorganizrnginxdashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallembycouchpotatonzbgetbookmarkapplication-dashboard
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.2 KiB
95 lines
2.2 KiB
<?php
|
|
|
|
namespace Laravel\Tinker;
|
|
|
|
use Exception;
|
|
use Symfony\Component\VarDumper\Caster\Caster;
|
|
|
|
class TinkerCaster
|
|
{
|
|
/**
|
|
* Application methods to include in the presenter.
|
|
*
|
|
* @var array
|
|
*/
|
|
private static $appProperties = [
|
|
'configurationIsCached',
|
|
'environment',
|
|
'environmentFile',
|
|
'isLocal',
|
|
'routesAreCached',
|
|
'runningUnitTests',
|
|
'version',
|
|
'path',
|
|
'basePath',
|
|
'configPath',
|
|
'databasePath',
|
|
'langPath',
|
|
'publicPath',
|
|
'storagePath',
|
|
'bootstrapPath',
|
|
];
|
|
|
|
/**
|
|
* Get an array representing the properties of an application.
|
|
*
|
|
* @param \Illuminate\Foundation\Application $app
|
|
* @return array
|
|
*/
|
|
public static function castApplication($app)
|
|
{
|
|
$results = [];
|
|
|
|
foreach (self::$appProperties as $property) {
|
|
try {
|
|
$val = $app->$property();
|
|
|
|
if (! is_null($val)) {
|
|
$results[Caster::PREFIX_VIRTUAL.$property] = $val;
|
|
}
|
|
} catch (Exception $e) {
|
|
//
|
|
}
|
|
}
|
|
|
|
return $results;
|
|
}
|
|
|
|
/**
|
|
* Get an array representing the properties of a collection.
|
|
*
|
|
* @param \Illuminate\Support\Collection $collection
|
|
* @return array
|
|
*/
|
|
public static function castCollection($collection)
|
|
{
|
|
return [
|
|
Caster::PREFIX_VIRTUAL.'all' => $collection->all(),
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Get an array representing the properties of a model.
|
|
*
|
|
* @param \Illuminate\Database\Eloquent\Model $model
|
|
* @return array
|
|
*/
|
|
public static function castModel($model)
|
|
{
|
|
$attributes = array_merge(
|
|
$model->getAttributes(), $model->getRelations()
|
|
);
|
|
|
|
$visible = array_flip(
|
|
$model->getVisible() ?: array_diff(array_keys($attributes), $model->getHidden())
|
|
);
|
|
|
|
$results = [];
|
|
|
|
foreach (array_intersect_key($attributes, $visible) as $key => $value) {
|
|
$results[(isset($visible[$key]) ? Caster::PREFIX_VIRTUAL : Caster::PREFIX_PROTECTED).$key] = $value;
|
|
}
|
|
|
|
return $results;
|
|
}
|
|
}
|
|
|