Mercurial > packages > magicforger
annotate src/Replacer/Replacer.php @ 35:55d2e5c5dad9 ls_dev_2025_09
Working on the factory, it's in a semi working state but obviously not complete
| author | Luka Sitas <sitas.luka.97@gmail.com> |
|---|---|
| date | Thu, 11 Sep 2025 21:25:51 -0400 |
| parents | 010ace248d14 |
| children | 116b36f5e73b |
| rev | line source |
|---|---|
| 5 | 1 <?php |
| 2 | |
|
19
19b7a8de0019
updating namespace from typo
Luka Sitas <sitas.luka.97@gmail.com>
parents:
14
diff
changeset
|
3 namespace Wizard\MagicForger\Replacer; |
| 5 | 4 |
| 5 use Illuminate\Support\Str; | |
| 6 | |
| 7 trait Replacer | |
| 8 { | |
| 9 /** | |
| 10 * Prefix and Suffix for controller. | |
| 11 * Usage is up to the user. | |
| 12 */ | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
13 protected string $controller_prefix = ''; |
| 5 | 14 |
| 15 /** | |
| 16 * Prefix and Suffix for controller. | |
| 17 * Usage is up to the user. | |
| 18 */ | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
19 protected string $controller_suffix = 'Controller'; |
| 5 | 20 |
| 21 /** | |
| 22 * Finds all places in a string that could be replaced. | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
23 * Returns an array of all potential replacements as they appear in the target. |
| 5 | 24 */ |
|
7
769a17898cc0
Various changes to the generators and replacers - probably mostly just formatting
luka
parents:
5
diff
changeset
|
25 public function get_all_keywords(string $target): array |
| 5 | 26 { |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
27 // find all matches to our expected syntax |
| 5 | 28 $matches = []; |
| 29 preg_match_all('/{{[\sa-zA-Z\-_]+}}/', $target, $matches); | |
| 30 // sort the array and return unique values | |
| 31 sort($matches[0]); | |
|
7
769a17898cc0
Various changes to the generators and replacers - probably mostly just formatting
luka
parents:
5
diff
changeset
|
32 |
| 5 | 33 return array_values(array_unique($matches[0])); |
| 34 } | |
| 35 | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
36 /** |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
37 * Apply replacements to the target string. |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
38 */ |
| 5 | 39 public function apply_replacements(string $target): string |
| 40 { | |
|
7
769a17898cc0
Various changes to the generators and replacers - probably mostly just formatting
luka
parents:
5
diff
changeset
|
41 $inserts = $this->get_all_keywords($target); |
| 5 | 42 $available_replacements = $this->get_available_replacements(); |
| 43 | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
44 return str_replace( |
| 5 | 45 array_keys($available_replacements), |
| 46 $available_replacements, | |
| 47 $target | |
| 48 ); | |
| 49 } | |
| 50 | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
51 /** |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
52 * Get available replacements for string replacements. |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
53 */ |
| 14 | 54 public function get_available_replacements(): array |
| 5 | 55 { |
| 56 $table_name = $this->getTableInput(); | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
57 |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
58 return [ |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
59 '{{ class }}' => $this->getClassName($table_name), |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
60 '{{ controllerName }}' => $this->controller_name($table_name), |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
61 '{{ model }}' => $this->model_name($table_name), |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
62 '{{ modelVariable }}' => $this->model_variable($table_name), |
|
23
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
21
diff
changeset
|
63 '{{ namespace }}' => $this->{'get'.$this->type.'Namespace'}($table_name), |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
64 '{{ namespacedModel }}' => $this->getNamespacedModel($table_name), |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
65 '{{ requestUses }}' => $this->getRequestUses($table_name), |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
66 '{{ rootNamespace }}' => $this->getRootNamespace(), |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
67 '{{ storeRequest }}' => $this->store_request_name($table_name), |
|
29
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
68 '{{ filterRequest }}' => $this->filter_request_name($table_name), |
|
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
69 '{{ updateRequest }}' => $this->update_request_name($table_name), |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
70 '{{ tableName }}' => $table_name, |
| 5 | 71 ]; |
| 72 } | |
| 73 | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
74 // Model and Controller Naming |
| 5 | 75 |
| 76 /** | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
77 * Generate model name in Studly case. |
| 5 | 78 */ |
| 79 public function model_name(string $name): string | |
| 80 { | |
| 81 return Str::singular(Str::studly($name)); | |
| 82 } | |
| 83 | |
| 84 /** | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
85 * Generate singular model variable name. |
| 5 | 86 */ |
| 87 public function model_variable(string $name): string | |
| 88 { | |
| 11 | 89 return Str::singular($name); |
| 5 | 90 } |
| 91 | |
| 92 /** | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
93 * Generate controller name using prefix/suffix and studly case. |
| 5 | 94 */ |
| 95 public function controller_name(string $name): string | |
| 96 { | |
|
23
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
21
diff
changeset
|
97 return $this->controller_prefix. |
|
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
21
diff
changeset
|
98 $this->model_name($name). |
| 5 | 99 $this->controller_suffix; |
| 100 } | |
| 101 | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
102 /** |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
103 * Generate the store request name. |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
104 */ |
| 5 | 105 public function store_request_name(string $name): string |
| 106 { | |
|
23
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
21
diff
changeset
|
107 return 'Store'.$this->model_name($name).'Request'; |
| 5 | 108 } |
| 109 | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
110 /** |
|
29
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
111 * Generate the filter request name. |
|
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
112 */ |
|
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
113 public function filter_request_name(string $name): string |
|
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
114 { |
|
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
115 return 'Filter'.$this->model_name($name).'Request'; |
|
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
116 } |
|
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
117 |
|
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
118 /** |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
119 * Generate the update request name. |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
120 */ |
| 5 | 121 public function update_request_name(string $name): string |
| 122 { | |
|
23
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
21
diff
changeset
|
123 return 'Update'.$this->model_name($name).'Request'; |
| 5 | 124 } |
| 125 | |
|
25
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
126 |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
127 /** |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
128 * Generate the index view name. |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
129 */ |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
130 public function index_view_name(string $name): string |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
131 { |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
132 return ''; |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
133 } |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
134 |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
135 /** |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
136 * Generate the create_edit view name. |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
137 */ |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
138 public function create_edit_view_name(string $name): string |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
139 { |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
140 return ''; |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
141 } |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
142 |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
143 /** |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
144 * Generate the show view name. |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
145 */ |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
146 public function show_view_name(string $name): string |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
147 { |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
148 return ''; |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
149 } |
|
27
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
150 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
151 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
152 /** |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
153 * Generate route name in Studly case. |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
154 */ |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
155 public function routes_name(string $name): string |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
156 { |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
157 return Str::singular(Str::studly($name)); |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
158 } |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
159 |
|
35
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
160 /** |
|
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
161 * Generate factory name in Studly case. |
|
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
162 */ |
|
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
163 public function factory_name(string $name): string |
|
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
164 { |
|
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
165 return Str::singular(Str::studly($name)) . 'Factory'; |
|
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
166 } |
|
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
167 |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
168 // Namespace Methods |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
169 // These methods handle the formation of various namespaces used within the replacements. |
| 5 | 170 |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
171 /** |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
172 * Get the root namespace for the application. |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
173 */ |
| 14 | 174 public function getRootNamespace(): string |
| 5 | 175 { |
| 176 return $this->laravel->getNamespace(); | |
| 177 } | |
| 178 | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
179 /** |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
180 * Get the model namespace. |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
181 */ |
|
27
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
182 public function getRouteNamespace(string $name = ''): string |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
183 { |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
184 return base_path() |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
185 . DIRECTORY_SEPARATOR . 'routes' |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
186 . DIRECTORY_SEPARATOR . 'resources' |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
187 ; |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
188 } |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
189 |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
190 /** |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
191 * Get the model namespace. |
|
b17f81b804ff
Added support for routes
Luka Sitas <sitas.luka.97@gmail.com>
parents:
25
diff
changeset
|
192 */ |
| 14 | 193 public function getModelNamespace(string $name = ''): string |
| 5 | 194 { |
|
23
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
21
diff
changeset
|
195 return $this->getRootNamespace().'Models'; |
| 5 | 196 } |
| 197 | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
198 /** |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
199 * Get the fully-qualified namespaced model class. |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
200 */ |
| 14 | 201 public function getNamespacedModel(string $name = ''): string |
| 5 | 202 { |
|
23
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
21
diff
changeset
|
203 return $this->getModelNamespace().'\\'.$this->model_name($name); |
| 5 | 204 } |
| 205 | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
206 /** |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
207 * Get the controller namespace. |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
208 */ |
| 14 | 209 public function getControllerNamespace(string $name = ''): string |
| 5 | 210 { |
|
23
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
21
diff
changeset
|
211 return $this->getRootNamespace().'Http\\Controllers'; |
| 5 | 212 } |
| 213 | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
214 /** |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
215 * Get the request namespace. |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
216 */ |
| 14 | 217 public function getRequestNamespace(string $name): string |
| 5 | 218 { |
|
23
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
21
diff
changeset
|
219 return $this->getRootNamespace().'Http\\Requests\\'.$this->model_name($name); |
| 5 | 220 } |
| 221 | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
222 /** |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
223 * Get the store request namespace. |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
224 */ |
| 14 | 225 public function getStoreRequestNamespace(string $name): string |
| 5 | 226 { |
| 227 return $this->getRequestNamespace($name); | |
| 228 } | |
| 229 | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
230 /** |
|
29
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
231 * Get the filter request namespace. |
|
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
232 */ |
|
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
233 public function getFilterRequestNamespace(string $name): string |
|
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
234 { |
|
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
235 return $this->getRequestNamespace($name); |
|
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
236 } |
|
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
237 |
|
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
238 /** |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
239 * Get the update request namespace. |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
240 */ |
| 14 | 241 public function getUpdateRequestNamespace(string $name): string |
| 5 | 242 { |
| 243 return $this->getRequestNamespace($name); | |
| 244 } | |
| 245 | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
246 /** |
|
25
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
247 * Get the view namespace. |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
248 */ |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
249 public function getViewNamespace(string $name): string |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
250 { |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
251 return $this->viewPath($name) . '\\'; |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
252 } |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
253 |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
254 /** |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
255 * Get the index view namespace. |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
256 */ |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
257 public function getIndexViewNamespace(string $name): string |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
258 { |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
259 return $this->getViewNamespace($name) . '\\'; |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
260 } |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
261 |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
262 /** |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
263 * Get the create_edit view namespace. |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
264 */ |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
265 public function getCreateEditViewNamespace(string $name): string |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
266 { |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
267 return $this->getViewNamespace($name) . '\\'; |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
268 } |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
269 |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
270 /** |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
271 * Get the show view namespace. |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
272 */ |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
273 public function getShowViewNamespace(string $name): string |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
274 { |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
275 return $this->getViewNamespace($name) . '\\'; |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
276 } |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
277 |
|
35
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
278 /** |
|
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
279 * Get the factory namespace. |
|
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
280 */ |
|
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
281 public function getFactoryNamespace(string $name = ''): string |
|
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
282 { |
|
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
283 return database_path() |
|
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
284 . DIRECTORY_SEPARATOR . 'factories' ; |
|
55d2e5c5dad9
Working on the factory, it's in a semi working state but obviously not complete
Luka Sitas <sitas.luka.97@gmail.com>
parents:
29
diff
changeset
|
285 } |
|
25
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
286 |
|
1a717c7b211f
added support for some basic views
Luka Sitas <sitas.luka.97@gmail.com>
parents:
23
diff
changeset
|
287 /** |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
288 * Get the request uses string for replacement. |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
289 */ |
| 14 | 290 public function getRequestUses(string $name): string |
| 5 | 291 { |
| 292 return implode("\n", [ | |
|
23
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
21
diff
changeset
|
293 'use '.$this->getRequestNamespace($name).'\\'.$this->store_request_name($name).';', |
|
29
010ace248d14
Added support for filters, not fully there with relations or anything like that but it's a start
Luka Sitas <sitas.luka.97@gmail.com>
parents:
27
diff
changeset
|
294 'use '.$this->getRequestNamespace($name).'\\'.$this->filter_request_name($name).';', |
|
23
827efbf4d73c
Huge changes to the relationships for models and more complex
Luka Sitas <sitas.luka.97@gmail.com>
parents:
21
diff
changeset
|
295 'use '.$this->getRequestNamespace($name).'\\'.$this->update_request_name($name).';', |
| 5 | 296 ]); |
| 297 } | |
| 298 | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
299 // Text Manipulation |
| 5 | 300 |
| 301 /** | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
302 * Convert a string to a human-readable format. |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
303 * Assumes camel case input. |
| 5 | 304 */ |
| 305 public function human_readable(string $name): string | |
| 306 { | |
| 307 return Str::title(Str::replace('_', ' ', $name)); | |
| 308 } | |
| 309 | |
| 310 /** | |
|
21
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
311 * Convert a string to a lowercase human-readable format. |
|
f0b0d014e448
Cleaning up code based on AI overlord review
Luka Sitas <sitas.luka.97@gmail.com>
parents:
19
diff
changeset
|
312 * Assumes camel case input. |
| 5 | 313 */ |
| 314 public function human_readable_lc(string $name): string | |
| 315 { | |
| 316 return Str::lower($this->human_readable($name)); | |
| 317 } | |
| 318 } |
