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 }