github.com/goravel/framework@v1.13.9/foundation/console/package_make_command_stubs.go (about)

     1  package console
     2  
     3  import (
     4  	"strings"
     5  
     6  	"github.com/goravel/framework/support/str"
     7  )
     8  
     9  type PackageMakeCommandStubs struct {
    10  	pkg  string
    11  	root string
    12  	name string
    13  }
    14  
    15  func NewPackageMakeCommandStubs(pkg, root string) *PackageMakeCommandStubs {
    16  	return &PackageMakeCommandStubs{pkg: pkg, root: root, name: packageName(pkg)}
    17  }
    18  
    19  func (r PackageMakeCommandStubs) Readme() string {
    20  	content := `# DummyName
    21  `
    22  
    23  	return strings.ReplaceAll(content, "DummyName", r.name)
    24  }
    25  
    26  func (r PackageMakeCommandStubs) ServiceProvider() string {
    27  	content := `package DummyName
    28  
    29  import (
    30  	"github.com/goravel/framework/contracts/foundation"
    31  )
    32  
    33  const Binding = "DummyPackage"
    34  
    35  var App foundation.Application
    36  
    37  type ServiceProvider struct {
    38  }
    39  
    40  func (receiver *ServiceProvider) Register(app foundation.Application) {
    41  	App = app
    42  
    43  	app.Bind(Binding, func(app foundation.Application) (any, error) {
    44  		return nil, nil
    45  	})
    46  }
    47  
    48  func (receiver *ServiceProvider) Boot(app foundation.Application) {
    49  
    50  }
    51  `
    52  
    53  	content = strings.ReplaceAll(content, "DummyPackage", r.pkg)
    54  	content = strings.ReplaceAll(content, "DummyName", r.name)
    55  
    56  	return content
    57  }
    58  
    59  func (r PackageMakeCommandStubs) Main() string {
    60  	content := `package DummyName
    61  
    62  type DummyCamelName struct {}
    63  `
    64  
    65  	content = strings.ReplaceAll(content, "DummyName", r.name)
    66  	content = strings.ReplaceAll(content, "DummyCamelName", str.Case2Camel(r.name))
    67  
    68  	return content
    69  }
    70  
    71  func (r PackageMakeCommandStubs) Config() string {
    72  	content := `package config
    73  
    74  import (
    75  	"github.com/goravel/framework/facades"
    76  )
    77  
    78  func init() {
    79  	config := facades.Config()
    80  	config.Add("DummyName", map[string]any{
    81  		
    82  	})
    83  }
    84  `
    85  
    86  	return strings.ReplaceAll(content, "DummyName", r.name)
    87  }
    88  
    89  func (r PackageMakeCommandStubs) Contracts() string {
    90  	content := `package contracts
    91  
    92  type DummyCamelName interface {}
    93  `
    94  
    95  	return strings.ReplaceAll(content, "DummyCamelName", str.Case2Camel(r.name))
    96  }
    97  
    98  func (r PackageMakeCommandStubs) Facades() string {
    99  	content := `package facades
   100  
   101  import (
   102  	"log"
   103  
   104  	"goravel/DummyRoot"
   105  	"goravel/DummyRoot/contracts"
   106  )
   107  
   108  func DummyCamelName() contracts.DummyCamelName {
   109  	instance, err := DummyName.App.Make(DummyName.Binding)
   110  	if err != nil {
   111  		log.Println(err)
   112  		return nil
   113  	}
   114  
   115  	return instance.(contracts.DummyCamelName)
   116  }
   117  `
   118  
   119  	content = strings.ReplaceAll(content, "DummyRoot", r.root)
   120  	content = strings.ReplaceAll(content, "DummyName", r.name)
   121  	content = strings.ReplaceAll(content, "DummyCamelName", str.Case2Camel(r.name))
   122  
   123  	return content
   124  }