Skip to content

Commit cb49a1f

Browse files
committed
Add unsetProperty to in hooks to ignore some properties
1 parent 999167d commit cb49a1f

File tree

17 files changed

+53
-1
lines changed

17 files changed

+53
-1
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,7 @@ class MyCustomHook implements ModelHookInterface
301301
return;
302302
}
303303

304+
$command->unsetProperty('hash');
304305
$command->setProperty('custom', 'string', true, false, 'My custom property');
305306
$command->unsetMethod('method');
306307
$command->setMethod('method', $command->getMethodType($model, '\Some\Class'), ['$param']);

src/Console/ModelsCommand.php

+8-1
Original file line numberDiff line numberDiff line change
@@ -816,6 +816,13 @@ public function setProperty($name, $type = null, $read = null, $write = null, $c
816816
}
817817
}
818818

819+
public function unsetProperty($name)
820+
{
821+
unset($this->properties[$name]);
822+
823+
$this->unsetMethod(Str::camel('where_' . $name));
824+
}
825+
819826
public function setMethod($name, $type = '', $arguments = [], $comment = '')
820827
{
821828
$methods = array_change_key_case($this->methods, CASE_LOWER);
@@ -830,7 +837,7 @@ public function setMethod($name, $type = '', $arguments = [], $comment = '')
830837

831838
public function unsetMethod($name)
832839
{
833-
unset($this->methods[strtolower($name)]);
840+
unset($this->methods[$name]);
834841
}
835842

836843
public function getMethodType(Model $model, string $classType)

tests/Console/ModelsCommand/Attributes/__snapshots__/Test__test__1.php

+2
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@
1111
* Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Attributes\Models\Simple
1212
*
1313
* @property integer $id
14+
* @property string $unset
1415
* @property string|null $name
1516
* @method static \Illuminate\Database\Eloquent\Builder|Simple newModelQuery()
1617
* @method static \Illuminate\Database\Eloquent\Builder|Simple newQuery()
1718
* @method static \Illuminate\Database\Eloquent\Builder|Simple query()
1819
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereId($value)
20+
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereUnset($value)
1921
* @mixin \Eloquent
2022
*/
2123
class Simple extends Model

tests/Console/ModelsCommand/Comment/__snapshots__/Test__test__1.php

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
* Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Comment\Models\Simple
1414
*
1515
* @property integer $id
16+
* @property string $unset
1617
* @property string $both_same_name I'm a getter
1718
* @property string $both_without_getter_comment
1819
* @property-read string $faker_comment
@@ -31,6 +32,7 @@
3132
* @method static \Illuminate\Database\Eloquent\Builder|Simple newQuery()
3233
* @method static \Illuminate\Database\Eloquent\Builder|Simple query()
3334
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereId($value)
35+
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereUnset($value)
3436
* @mixin \Eloquent
3537
*/
3638
class Simple extends Model

tests/Console/ModelsCommand/CustomCollection/__snapshots__/Test__test__1.php

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
* Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\CustomCollection\Models\Simple
1313
*
1414
* @property integer $id
15+
* @property string $unset
1516
* @property-read SimpleCollection|Simple[] $relationHasMany
1617
* @property-read int|null $relation_has_many_count
1718
* @method static SimpleCollection|static[] all($columns = ['*'])
@@ -20,6 +21,7 @@
2021
* @method static \Illuminate\Database\Eloquent\Builder|Simple newQuery()
2122
* @method static \Illuminate\Database\Eloquent\Builder|Simple query()
2223
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereId($value)
24+
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereUnset($value)
2325
* @mixin \Eloquent
2426
*/
2527
class Simple extends Model

tests/Console/ModelsCommand/Getter/__snapshots__/Test__test__1.php

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
* Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Getter\Models\Simple
1212
*
1313
* @property integer $id
14+
* @property string $unset
1415
* @property-read int|null $attribute_return_type_int_or_null
1516
* @property-read array $attribute_returns_array
1617
* @property-read bool $attribute_returns_bool
@@ -35,6 +36,7 @@
3536
* @method static \Illuminate\Database\Eloquent\Builder|Simple newQuery()
3637
* @method static \Illuminate\Database\Eloquent\Builder|Simple query()
3738
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereId($value)
39+
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereUnset($value)
3840
* @mixin \Eloquent
3941
*/
4042
class Simple extends Model
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\ModelHooks\Hooks;
6+
7+
use Barryvdh\LaravelIdeHelper\Console\ModelsCommand;
8+
use Barryvdh\LaravelIdeHelper\Contracts\ModelHookInterface;
9+
use Illuminate\Database\Eloquent\Model;
10+
11+
class UnsetProperty implements ModelHookInterface
12+
{
13+
public function run(ModelsCommand $command, Model $model): void
14+
{
15+
$command->unsetProperty('unset');
16+
}
17+
}

tests/Console/ModelsCommand/ModelHooks/Test.php

+2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
use Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\ModelHooks\Hooks\CustomMethod;
1010
use Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\ModelHooks\Hooks\CustomProperty;
1111
use Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\ModelHooks\Hooks\UnsetMethod;
12+
use Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\ModelHooks\Hooks\UnsetProperty;
1213
use Illuminate\Filesystem\Filesystem;
1314
use Mockery;
1415

@@ -28,6 +29,7 @@ protected function getEnvironmentSetUp($app)
2829
CustomProperty::class,
2930
CustomMethod::class,
3031
UnsetMethod::class,
32+
UnsetProperty::class,
3133
],
3234
]);
3335
}

tests/Console/ModelsCommand/PHPStormNoInspection/__snapshots__/Test__testNoinspectionNotPresent__1.php

+2
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@
1010
* Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\PHPStormNoInspection\Models\Simple
1111
*
1212
* @property integer $id
13+
* @property string $unset
1314
* @method static \Illuminate\Database\Eloquent\Builder|Simple newModelQuery()
1415
* @method static \Illuminate\Database\Eloquent\Builder|Simple newQuery()
1516
* @method static \Illuminate\Database\Eloquent\Builder|Simple query()
1617
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereId($value)
18+
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereUnset($value)
1719
* @mixin \Eloquent
1820
*/
1921
class Simple extends Model

tests/Console/ModelsCommand/PHPStormNoInspection/__snapshots__/Test__testNoinspectionPresent__1.php

+2
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@
1010
* Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\PHPStormNoInspection\Models\Simple
1111
*
1212
* @property integer $id
13+
* @property string $unset
1314
* @method static \Illuminate\Database\Eloquent\Builder|Simple newModelQuery()
1415
* @method static \Illuminate\Database\Eloquent\Builder|Simple newQuery()
1516
* @method static \Illuminate\Database\Eloquent\Builder|Simple query()
1617
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereId($value)
18+
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereUnset($value)
1719
* @mixin \Eloquent
1820
* @noinspection PhpFullyQualifiedNameUsageInspection
1921
* @noinspection PhpUnnecessaryFullyQualifiedNameInspection

tests/Console/ModelsCommand/Relations/__snapshots__/Test__test__1.php

+2
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public function nullableColumnWithNoForeignKeyConstraint(): BelongsTo
7373
* Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Relations\Models\Simple
7474
*
7575
* @property integer $id
76+
* @property string $unset
7677
* @property-read Simple|null $relationBelongsTo
7778
* @property-read AnotherModel|null $relationBelongsToInAnotherNamespace
7879
* @property-read \Illuminate\Database\Eloquent\Collection|Simple[] $relationBelongsToMany
@@ -99,6 +100,7 @@ public function nullableColumnWithNoForeignKeyConstraint(): BelongsTo
99100
* @method static \Illuminate\Database\Eloquent\Builder|Simple newQuery()
100101
* @method static \Illuminate\Database\Eloquent\Builder|Simple query()
101102
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereId($value)
103+
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereUnset($value)
102104
* @mixin \Eloquent
103105
*/
104106
class Simple extends Model

tests/Console/ModelsCommand/ResetAndSmartReset/__snapshots__/Test__testNoReset__1.php

+2
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@
1111
*
1212
* @property string $foo
1313
* @property integer $id
14+
* @property string $unset
1415
* @method static \Illuminate\Database\Eloquent\Builder|Simple newModelQuery()
1516
* @method static \Illuminate\Database\Eloquent\Builder|Simple newQuery()
1617
* @method static \Illuminate\Database\Eloquent\Builder|Simple query()
1718
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereId($value)
19+
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereUnset($value)
1820
* @mixin \Eloquent
1921
*/
2022
class Simple extends Model

tests/Console/ModelsCommand/ResetAndSmartReset/__snapshots__/Test__testReset__1.php

+2
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@
1010
* Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\ResetAndSmartReset\Models\Simple
1111
*
1212
* @property integer $id
13+
* @property string $unset
1314
* @method static \Illuminate\Database\Eloquent\Builder|Simple newModelQuery()
1415
* @method static \Illuminate\Database\Eloquent\Builder|Simple newQuery()
1516
* @method static \Illuminate\Database\Eloquent\Builder|Simple query()
1617
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereId($value)
18+
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereUnset($value)
1719
* @mixin \Eloquent
1820
*/
1921
class Simple extends Model

tests/Console/ModelsCommand/ResetAndSmartReset/__snapshots__/Test__testSmartReset__1.php

+2
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,12 @@
1010
* Text of existing phpdoc
1111
*
1212
* @property integer $id
13+
* @property string $unset
1314
* @method static \Illuminate\Database\Eloquent\Builder|Simple newModelQuery()
1415
* @method static \Illuminate\Database\Eloquent\Builder|Simple newQuery()
1516
* @method static \Illuminate\Database\Eloquent\Builder|Simple query()
1617
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereId($value)
18+
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereUnset($value)
1719
* @mixin \Eloquent
1820
*/
1921
class Simple extends Model

tests/Console/ModelsCommand/SoftDeletes/__snapshots__/Test__test__1.php

+2
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@
1111
* Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\SoftDeletes\Models\Simple
1212
*
1313
* @property integer $id
14+
* @property string $unset
1415
* @method static \Illuminate\Database\Eloquent\Builder|Simple newModelQuery()
1516
* @method static \Illuminate\Database\Eloquent\Builder|Simple newQuery()
1617
* @method static \Illuminate\Database\Query\Builder|Simple onlyTrashed()
1718
* @method static \Illuminate\Database\Eloquent\Builder|Simple query()
1819
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereId($value)
20+
* @method static \Illuminate\Database\Eloquent\Builder|Simple whereUnset($value)
1921
* @method static \Illuminate\Database\Query\Builder|Simple withTrashed()
2022
* @method static \Illuminate\Database\Query\Builder|Simple withoutTrashed()
2123
* @mixin \Eloquent

tests/Console/ModelsCommand/Variadic/__snapshots__/Test__test__1.php

+2
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@
1111
* Barryvdh\LaravelIdeHelper\Tests\Console\ModelsCommand\Variadic\Models\Simple
1212
*
1313
* @property integer $id
14+
* @property string $unset
1415
* @method static Builder|Simple newModelQuery()
1516
* @method static Builder|Simple newQuery()
1617
* @method static Builder|Simple query()
1718
* @method static Builder|Simple whereId($value)
1819
* @method static Builder|Simple whereTypedVariadic(int ...$values)
20+
* @method static Builder|Simple whereUnset($value)
1921
* @method static Builder|Simple whereVariadic(...$values)
2022
* @mixin \Eloquent
2123
*/

tests/Console/ModelsCommand/migrations/____simple_table.php

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public function up(): void
1212
{
1313
Schema::create('simples', function (Blueprint $table) {
1414
$table->bigIncrements('id');
15+
$table->string('unset');
1516
});
1617
}
1718
}

0 commit comments

Comments
 (0)