@omnifyjp/ts 5.6.1 → 5.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -187,6 +187,13 @@ function generateUserController(name, schema, config) {
|
|
|
187
187
|
const userPath = group
|
|
188
188
|
? `${editable.path}/Api/V1/${group}`
|
|
189
189
|
: `${editable.path}/Api/V1`;
|
|
190
|
+
// Issue #98: alias on class-name collision (flatBase + userEditablePath).
|
|
191
|
+
const baseAlias = baseDescriptor.className === editable.className
|
|
192
|
+
? `${baseDescriptor.className}Base`
|
|
193
|
+
: baseDescriptor.className;
|
|
194
|
+
const baseImport = baseAlias === baseDescriptor.className
|
|
195
|
+
? `use ${baseDescriptor.fqn};`
|
|
196
|
+
: `use ${baseDescriptor.fqn} as ${baseAlias};`;
|
|
190
197
|
const content = `<?php
|
|
191
198
|
|
|
192
199
|
/**
|
|
@@ -197,9 +204,9 @@ function generateUserController(name, schema, config) {
|
|
|
197
204
|
|
|
198
205
|
namespace ${userNs};
|
|
199
206
|
|
|
200
|
-
|
|
207
|
+
${baseImport}
|
|
201
208
|
|
|
202
|
-
class ${editable.className} extends ${
|
|
209
|
+
class ${editable.className} extends ${baseAlias}
|
|
203
210
|
{
|
|
204
211
|
//
|
|
205
212
|
}
|
|
@@ -221,8 +221,17 @@ function generateUserModel(name, config, hasNestedSet = false) {
|
|
|
221
221
|
: resolveBaseClass(config.models, modelName, 'BaseModel');
|
|
222
222
|
const factoryNamespace = config.factories.namespace;
|
|
223
223
|
const nestedSetNamespace = config.nestedset.namespace;
|
|
224
|
+
// Issue #98: when flatBase + userEditablePath both set, base.className
|
|
225
|
+
// (`Banner`) collides with the editable class (`Banner`). A bare
|
|
226
|
+
// `use App\Omnify\Models\Banner;` + `class Banner extends Banner`
|
|
227
|
+
// self-references and crashes at autoload. Alias the import in that
|
|
228
|
+
// case so the editable resolves to a distinct symbol.
|
|
229
|
+
const baseAlias = base.className === editable.className ? `${base.className}Base` : base.className;
|
|
230
|
+
const baseImport = baseAlias === base.className
|
|
231
|
+
? `use ${base.fqn};`
|
|
232
|
+
: `use ${base.fqn} as ${baseAlias};`;
|
|
224
233
|
const imports = [
|
|
225
|
-
|
|
234
|
+
baseImport,
|
|
226
235
|
`use ${factoryNamespace}\\${modelName}Factory;`,
|
|
227
236
|
`use Illuminate\\Database\\Eloquent\\Factories\\HasFactory;`,
|
|
228
237
|
];
|
|
@@ -248,7 +257,7 @@ ${imports.join('\n')}
|
|
|
248
257
|
/**
|
|
249
258
|
* ${modelName} — add project-specific model logic here.
|
|
250
259
|
*/
|
|
251
|
-
class ${modelName} extends ${
|
|
260
|
+
class ${modelName} extends ${baseAlias}
|
|
252
261
|
{
|
|
253
262
|
${traits.join('\n')}
|
|
254
263
|
|
|
@@ -111,11 +111,18 @@ function generateUserPolicyClass(name, config) {
|
|
|
111
111
|
const editable = config.structure === 'modular'
|
|
112
112
|
? { className: `${modelName}Policy`, fileName: `${modelName}Policy.php`, namespace: config.policies.namespace, path: config.policies.path }
|
|
113
113
|
: resolveEditableClass(config.policies, modelName, 'Policy');
|
|
114
|
+
// Issue #98: alias on class-name collision (flatBase + userEditablePath).
|
|
115
|
+
const baseAlias = baseDescriptor.className === editable.className
|
|
116
|
+
? `${baseDescriptor.className}Base`
|
|
117
|
+
: baseDescriptor.className;
|
|
118
|
+
const baseImport = baseAlias === baseDescriptor.className
|
|
119
|
+
? `use ${baseDescriptor.fqn};`
|
|
120
|
+
: `use ${baseDescriptor.fqn} as ${baseAlias};`;
|
|
114
121
|
const content = `<?php
|
|
115
122
|
|
|
116
123
|
namespace ${editable.namespace};
|
|
117
124
|
|
|
118
|
-
|
|
125
|
+
${baseImport}
|
|
119
126
|
|
|
120
127
|
/**
|
|
121
128
|
* ${modelName} Policy
|
|
@@ -123,7 +130,7 @@ use ${baseDescriptor.fqn};
|
|
|
123
130
|
* This file is generated once and can be customized.
|
|
124
131
|
* Add your custom authorization logic here.
|
|
125
132
|
*/
|
|
126
|
-
class ${editable.className} extends ${
|
|
133
|
+
class ${editable.className} extends ${baseAlias}
|
|
127
134
|
{
|
|
128
135
|
// Add your custom policy methods here
|
|
129
136
|
}
|
|
@@ -281,6 +281,13 @@ function generateUserRequest(name, config, action) {
|
|
|
281
281
|
const editable = config.structure === 'modular'
|
|
282
282
|
? { className: `${modelName}${action}Request`, fileName: `${modelName}${action}Request.php`, namespace: config.requests.namespace, path: config.requests.path }
|
|
283
283
|
: resolveEditableClass(config.requests, modelName, `${action}Request`);
|
|
284
|
+
// Issue #98: alias on class-name collision (flatBase + userEditablePath).
|
|
285
|
+
const baseAlias = baseDescriptor.className === editable.className
|
|
286
|
+
? `${baseDescriptor.className}Base`
|
|
287
|
+
: baseDescriptor.className;
|
|
288
|
+
const baseImport = baseAlias === baseDescriptor.className
|
|
289
|
+
? `use ${baseDescriptor.fqn};`
|
|
290
|
+
: `use ${baseDescriptor.fqn} as ${baseAlias};`;
|
|
284
291
|
const content = `<?php
|
|
285
292
|
|
|
286
293
|
/**
|
|
@@ -291,7 +298,7 @@ function generateUserRequest(name, config, action) {
|
|
|
291
298
|
|
|
292
299
|
namespace ${editable.namespace};
|
|
293
300
|
|
|
294
|
-
|
|
301
|
+
${baseImport}
|
|
295
302
|
|
|
296
303
|
/**
|
|
297
304
|
* ${modelName}${action}Request — add project-specific authorization and validation here.
|
|
@@ -301,7 +308,7 @@ use ${baseDescriptor.fqn};
|
|
|
301
308
|
* - rules(): array (returns schemaRules() — override to add custom rules)
|
|
302
309
|
* - attributes(): array (returns schemaAttributes() — override to rename fields)
|
|
303
310
|
*/
|
|
304
|
-
class ${editable.className} extends ${
|
|
311
|
+
class ${editable.className} extends ${baseAlias}
|
|
305
312
|
{
|
|
306
313
|
//
|
|
307
314
|
}
|
|
@@ -143,6 +143,13 @@ function generateUserResource(name, config) {
|
|
|
143
143
|
const editable = config.structure === 'modular'
|
|
144
144
|
? { className: `${modelName}Resource`, fileName: `${modelName}Resource.php`, namespace: config.resources.namespace, path: config.resources.path }
|
|
145
145
|
: resolveEditableClass(config.resources, modelName, 'Resource');
|
|
146
|
+
// Issue #98: alias on class-name collision (flatBase + userEditablePath).
|
|
147
|
+
const baseAlias = baseDescriptor.className === editable.className
|
|
148
|
+
? `${baseDescriptor.className}Base`
|
|
149
|
+
: baseDescriptor.className;
|
|
150
|
+
const baseImport = baseAlias === baseDescriptor.className
|
|
151
|
+
? `use ${baseDescriptor.fqn};`
|
|
152
|
+
: `use ${baseDescriptor.fqn} as ${baseAlias};`;
|
|
146
153
|
const content = `<?php
|
|
147
154
|
|
|
148
155
|
/**
|
|
@@ -153,7 +160,7 @@ function generateUserResource(name, config) {
|
|
|
153
160
|
|
|
154
161
|
namespace ${editable.namespace};
|
|
155
162
|
|
|
156
|
-
|
|
163
|
+
${baseImport}
|
|
157
164
|
|
|
158
165
|
/**
|
|
159
166
|
* ${modelName}Resource — add project-specific serialization here.
|
|
@@ -161,7 +168,7 @@ use ${baseDescriptor.fqn};
|
|
|
161
168
|
* Inherited from base:
|
|
162
169
|
* - toArray(Request \\$request): array (returns schemaArray(\\$request) — override to add fields)
|
|
163
170
|
*/
|
|
164
|
-
class ${editable.className} extends ${
|
|
171
|
+
class ${editable.className} extends ${baseAlias}
|
|
165
172
|
{
|
|
166
173
|
//
|
|
167
174
|
}
|
|
@@ -1764,6 +1764,15 @@ function generateUserService(name, schema, config) {
|
|
|
1764
1764
|
: resolveEditableClass(config.services, modelName, 'Service');
|
|
1765
1765
|
const userNs = group ? `${editable.namespace}\\${group}` : editable.namespace;
|
|
1766
1766
|
const userPath = group ? `${editable.path}/${group}` : editable.path;
|
|
1767
|
+
// Issue #98: alias on class-name collision (flatBase + userEditablePath)
|
|
1768
|
+
// so `class BannerService extends BannerService` becomes
|
|
1769
|
+
// `class BannerService extends BannerServiceBase` via aliased import.
|
|
1770
|
+
const baseAlias = baseDescriptor.className === editable.className
|
|
1771
|
+
? `${baseDescriptor.className}Base`
|
|
1772
|
+
: baseDescriptor.className;
|
|
1773
|
+
const baseImport = baseAlias === baseDescriptor.className
|
|
1774
|
+
? `use ${baseDescriptor.fqn};`
|
|
1775
|
+
: `use ${baseDescriptor.fqn} as ${baseAlias};`;
|
|
1767
1776
|
const content = `<?php
|
|
1768
1777
|
|
|
1769
1778
|
/**
|
|
@@ -1774,9 +1783,9 @@ function generateUserService(name, schema, config) {
|
|
|
1774
1783
|
|
|
1775
1784
|
namespace ${userNs};
|
|
1776
1785
|
|
|
1777
|
-
|
|
1786
|
+
${baseImport}
|
|
1778
1787
|
|
|
1779
|
-
class ${editable.className} extends ${
|
|
1788
|
+
class ${editable.className} extends ${baseAlias}
|
|
1780
1789
|
{
|
|
1781
1790
|
//
|
|
1782
1791
|
}
|