mirror of
https://github.com/barryvdh/laravel-ide-helper.git
synced 2026-08-18 01:57:13 +00:00
Compare commits
7
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
980a87e250 | ||
|
|
299a81b9bb | ||
|
|
06c1fab9b5 | ||
|
|
271682a2a6 | ||
|
|
bb1caed698 | ||
|
|
55268cd47a | ||
|
|
088968c3fc |
@@ -1,5 +1,27 @@
|
||||
# Changelog
|
||||
|
||||
## v3.5.3 - 2025-01-08
|
||||
|
||||
### What's Changed
|
||||
|
||||
* Catch meta, tweak auth by @barryvdh in https://github.com/barryvdh/laravel-ide-helper/pull/1654
|
||||
* Check if macro is valid by @barryvdh in https://github.com/barryvdh/laravel-ide-helper/pull/1655
|
||||
* feat: use generics of return type to determine resulting models by @Bloemendaal in https://github.com/barryvdh/laravel-ide-helper/pull/1653
|
||||
|
||||
### New Contributors
|
||||
|
||||
* @Bloemendaal made their first contribution in https://github.com/barryvdh/laravel-ide-helper/pull/1653
|
||||
|
||||
**Full Changelog**: https://github.com/barryvdh/laravel-ide-helper/compare/v3.5.2...v3.5.3
|
||||
|
||||
## v3.5.2 - 2025-01-06
|
||||
|
||||
### Fixes
|
||||
|
||||
Fix empty/anonymous closure in meta command.
|
||||
|
||||
**Full Changelog**: https://github.com/barryvdh/laravel-ide-helper/compare/v3.5.1...v3.5.2
|
||||
|
||||
## v3.5.1 - 2025-01-06
|
||||
|
||||
### What's Changed
|
||||
|
||||
@@ -123,6 +123,7 @@ return [
|
||||
|
||||
'helper_files' => [
|
||||
base_path() . '/vendor/laravel/framework/src/Illuminate/Support/helpers.php',
|
||||
base_path() . '/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php',
|
||||
],
|
||||
|
||||
/*
|
||||
|
||||
+7
-1
@@ -403,9 +403,15 @@ class Alias
|
||||
$macros = isset($properties['macros']) ? $properties['macros'] : [];
|
||||
foreach ($macros as $macro_name => $macro_func) {
|
||||
if (!in_array($macro_name, $this->usedMethods)) {
|
||||
try {
|
||||
$method = $this->getMacroFunction($macro_func);
|
||||
} catch (Throwable $e) {
|
||||
// Invalid method, skip
|
||||
continue;
|
||||
}
|
||||
// Add macros
|
||||
$this->methods[] = new Macro(
|
||||
$this->getMacroFunction($macro_func),
|
||||
$method,
|
||||
$this->alias,
|
||||
$reflection,
|
||||
$macro_name,
|
||||
|
||||
@@ -233,7 +233,12 @@ class MetaCommand extends Command
|
||||
],
|
||||
[
|
||||
'class' => ['\Illuminate\Support\Facades\Route', '\Illuminate\Support\Facades\Auth', 'Illuminate\Foundation\Auth\Access\Authorizable'],
|
||||
'method' => ['can', 'cannot'],
|
||||
'method' => ['can', 'cannot', 'cant'],
|
||||
'argumentSet' => 'auth',
|
||||
],
|
||||
[
|
||||
'class' => ['Illuminate\Contracts\Auth\Access\Authorizable'],
|
||||
'method' => ['can'],
|
||||
'argumentSet' => 'auth',
|
||||
],
|
||||
[
|
||||
@@ -308,7 +313,13 @@ class MetaCommand extends Command
|
||||
{
|
||||
if (!isset($this->templateCache[$name])) {
|
||||
$file = __DIR__ . '/../../php-templates/' . basename($name) . '.php';
|
||||
$value = $this->files->requireOnce($file) ?: [];
|
||||
try {
|
||||
$value = $this->files->requireOnce($file) ?: [];
|
||||
} catch (\Throwable $e) {
|
||||
$value = [];
|
||||
$this->warn('Cannot load template for ' . $name . ': ' . $e->getMessage());
|
||||
}
|
||||
|
||||
if (!$value instanceof Collection) {
|
||||
$value = collect($value);
|
||||
}
|
||||
|
||||
@@ -819,10 +819,16 @@ class ModelsCommand extends Command
|
||||
$relation === 'morphTo'
|
||||
)
|
||||
) {
|
||||
$matches = [];
|
||||
$returnType = $this->getReturnTypeFromDocBlock($reflection);
|
||||
if ($returnType !== null) {
|
||||
preg_match('/MorphTo<(.+?)(?:,|>)/i', $returnType, $matches);
|
||||
}
|
||||
|
||||
// Model isn't specified because relation is polymorphic
|
||||
$this->setProperty(
|
||||
$method,
|
||||
$this->getClassNameInDestinationFile($model, Model::class) . '|\Eloquent',
|
||||
$matches[1] ?? $this->getClassNameInDestinationFile($model, Model::class) . '|\Eloquent',
|
||||
true,
|
||||
null,
|
||||
$comment,
|
||||
|
||||
+19
-1
@@ -80,7 +80,7 @@ class Generator
|
||||
->with('namespaces_by_extends_ns', $this->getAliasesByExtendsNamespace())
|
||||
->with('namespaces_by_alias_ns', $this->getAliasesByAliasNamespace())
|
||||
->with('real_time_facades', $this->getRealTimeFacades())
|
||||
->with('helpers', $this->helpers)
|
||||
->with('helpers', $this->detectHelpers())
|
||||
->with('include_fluent', $this->config->get('ide-helper.include_fluent', true))
|
||||
->with('factories', $this->config->get('ide-helper.include_factory_builders') ? Factories::all() : [])
|
||||
->render();
|
||||
@@ -112,6 +112,24 @@ class Generator
|
||||
->render();
|
||||
}
|
||||
|
||||
protected function detectHelpers()
|
||||
{
|
||||
$helpers = $this->helpers;
|
||||
|
||||
$replacements = [
|
||||
'($guard is null ? \Illuminate\Contracts\Auth\Factory : \Illuminate\Contracts\Auth\StatefulGuard)' => '\\Auth',
|
||||
];
|
||||
foreach ($replacements as $search => $replace) {
|
||||
$helpers = Str::replace(
|
||||
"@return {$search}",
|
||||
"@return $replace|$search",
|
||||
$helpers
|
||||
);
|
||||
}
|
||||
|
||||
return $helpers;
|
||||
}
|
||||
|
||||
protected function detectDrivers()
|
||||
{
|
||||
$defaultUserModel = config('auth.providers.users.model', config('auth.model', 'App\User'));
|
||||
|
||||
Reference in New Issue
Block a user