shield icon indicating copy to clipboard operation
shield copied to clipboard

feat: add `shield:publish` CLI Command

Open datamweb opened this issue 3 years ago • 10 comments

Hello friends, This PR helps to create custom views and adjust it. (related to: #480 ) It also helps to create custom UserModel. (related to: #476)

  • php spark shield:publish view
  • php spark shield:publish model

I'm not sure if merging this command is really necessary, however if you think it might be useful please give it a first look.

datamweb avatar Oct 30 '22 21:10 datamweb

Generator? not publisher. If so, shield:make is better? https://codeigniter4.github.io/CodeIgniter4/cli/cli_generators.html https://codeigniter4.github.io/CodeIgniter4/libraries/publisher.html

kenjis avatar Oct 30 '22 21:10 kenjis

Kenjis, you are right. I don't agree with the name shield:publish either, to be honest, I already chose shield:custom. However, shield:make is good, but you have to be careful, in make:... , the adjustment work is never done, here after the copy views, the adjustment of the views is done.

~~I was going to use GeneratorTrait to write command shield:publish model, but GeneratorTrait didn't have the necessary flexibility, it seems that some changes must be made in GeneratorTrait , which I don't intend to go into.~~

datamweb avatar Oct 30 '22 21:10 datamweb

Ah, the view command is a bit different from make command. make generates files from templates. But the view command copies view files and fixes the Config file.

kenjis avatar Oct 30 '22 23:10 kenjis

This is the output of Myth Auth auth:publish command. It seems the view command is the same as the part of Publish Views?.

$ php spark auth:publish

CodeIgniter v4.1.5 Command Line Tool - Server Time: 2021-12-09 16:36:40 UTC+09:00

Publish Migration? [y, n]: y
  Created: Database/Migrations/2017-11-20-223112_create_auth_tables.php
  Remember to run `spark migrate -all` to migrate the database.
Publish Models? [y, n]: y
  Created: Models/LoginModel.php
  Created: Models/UserModel.php
Publish Entities? [y, n]: y
  Created: Entities/User.php
Publish Controller? [y, n]: y
  Created: Controllers/AuthController.php
Publish Views? [y, n]: y
  Created: Views/Auth/_footer.php
  Created: Views/Auth/_header.php
  Created: Views/Auth/_message_block.php
  Created: Views/Auth/_navbar.php
  Created: Views/Auth/emails/activation.php
  Created: Views/Auth/emails/forgot.php
  Created: Views/Auth/forgot.php
  Created: Views/Auth/layout.php
  Created: Views/Auth/login.php
  Created: Views/Auth/register.php
  Created: Views/Auth/reset.php
Publish Filters? [y, n]: y
  Created: Filters/LoginFilter.php
  Created: Filters/PermissionFilter.php
  Created: Filters/RoleFilter.php
Publish Config file? [y, n]: y
  Created: Config/Auth.php
Publish Language file? [y, n]: y
  Created: Language/en/Auth.php

kenjis avatar Oct 30 '22 23:10 kenjis

But the view command copies view files and fixes the Config file.

Exactly.

make generates files from templates.

Yes, if you want I can write it with GeneratorTrait.

datamweb avatar Oct 31 '22 00:10 datamweb

It seems the view command is the same as the part of Publish Views?.

I haven't used auth:publish before, but that's what I see. I don't think we need to cover all of this, some of it is in shield:setup. However, I want to see what you mean? If you think there is a need for changes or something should be added, I will wait for you.

datamweb avatar Oct 31 '22 00:10 datamweb

I think the following commands are better:

  • php spark shield:publish view
  • php spark shield:make model

kenjis avatar Oct 31 '22 01:10 kenjis

shield:model was implemented in #558

kenjis avatar Apr 19 '23 10:04 kenjis

@kenjis We have now documented the customization details for views. I want to know we need php spark shield:publish view now?

datamweb avatar Oct 19 '23 02:10 datamweb

It is assumed that all view files will be customized by developers.

Because of the large number of files, it would be convenient if they can be prepared by one command. So I would be happy to have it. However, I don't mind if it is not in v1.0.0.

kenjis avatar Oct 19 '23 02:10 kenjis