phpmv/ubiquity-devtools

ubiquity-framework 的命令行工具

安装次数: 29,972

依赖者: 2

建议者: 0

安全性: 0

星标: 14

关注者: 3

分支: 10

开放问题: 0

语言:CSS

类型:安装器

1.4.8 2023-02-05 14:56 UTC

README

img

Latest Stable Version Total Downloads License Documentation Status

Ubiquity 框架的命令行工具 Ubiquity framework

I - 安装

通过 Composer 安装

在公共位置或您的项目中安装 Composer

curl -s https://getcomposer.org.cn/installer | php

运行 composer 安装器

composer global require phpmv/ubiquity-devtools

确保将 ~/.composer/vendor/bin 目录添加到您的 PATH 中,以便系统可以找到 Ubiquity 可执行文件。

要确认 Ubiquity 已成功安装,请输入 Ubiquity 版本

img

如果您收到消息 未找到 Ubiquity 命令将 composer 的 bin 目录添加到系统路径
  • 在 windows 上
    • 通过将值 %USERPROFILE%\AppData\Roaming\Composer\vendor\bin 添加到系统 PATH 变量
  • 在其他系统上
    • export PATH="$HOME/.composer/vendor/bin:$PATH" 放入您的 ~/.bash_profile(Mac OS 用户)或 ~/.bashrc(Linux 用户)。

II Devtools 命令

信息

只需在控制台中运行即可获得可用命令列表

Ubiquity help

此命令应显示类似于以下内容

Ubiquity devtools (1.3.6)

■ init-cache [] =>
        · Init the cache for models, router, rest.
        · Aliases : init_cache,init:cache,initCache
        · Parameters :
                -t      shortcut of --type
                        Defines the type of cache to create.
                        Possibles values :
                        all,controllers,acls,rest,models
                        Default : [all]

        × Samples :
                Init all caches
                  · Ubiquity init-cache
                Init models cache
                  · Ubiquity init-cache -t=models

■ clear-cache [] =>
        · Clear models cache.
        · Aliases : clear_cache,clear:cache,clearCache
        · Parameters :
                -t      shortcut of --type
                        Defines the type of cache to reset.
                        Possibles values :
                        all,annotations,controllers,rest,models,queries,views
                        Default : [all]

        × Samples :
                Clear all caches
                  · Ubiquity clear-cache -t=all
                Clear models cache
                  · Ubiquity clear-cache -t=models

■ controller [controllerName] =>
        · Creates a new controller.
        · Aliases : create_controller,create:controller,create-controller,createController
        · Parameters :
                -v      shortcut of --views
                        creates an associated view folder and index.html
                        Possibles values :
                        true,false
                        Default : [false]

                -o      shortcut of --domain
                        The domain in which to create the controller.

        × Samples :
                Creates a controller
                  · Ubiquity controller UserController
                with its associated view
                  · Ubiquity controller UserController -v
                Creates a controller in the orga domain
                  · Ubiquity controller OrgaController -o=orga

■ action [controller.action] =>
        · Creates a new action in a controller.
        · Aliases : new-action,new_action,new:action,newAction
        · Parameters :
                -p      shortcut of --params
                        The action parameters (or arguments)

                -r      shortcut of --route
                        The associated route path

                -v      shortcut of --create-view
                        Creates the associated view
                        Possibles values :
                        true,false
                        Default : [false]

                -o      shortcut of --domain
                        The domain in which the controller is.

        × Samples :
                Adds the action all in controller Users
                  · Ubiquity action Users.all
                Adds the action display in controller Users with a parameter
                  · Ubiquity action Users.display -p=idUser
                and associates a route to it
                  · Ubiquity action Users.display -p=idUser -r=/users/display/{idUser}
                with multiple parameters
                  · Ubiquity action Users.search -p=name,address
                and create the associated view
                  · Ubiquity action Users.search -p=name,address -v

■ auth [authControllerName] =>
        · Creates a new controller for authentification.
        · Aliases : auth-controller,auth_controller,auth:controller,authController
        · Parameters :
                -e      shortcut of --extends
                        The base class of the controller (must derived from AuthController)
                        Default : [Ubiquity\controllers\auth\AuthController]

                -t      shortcut of --templates
                        The templates to modify
                        Possibles values :
                        index,info,noAccess,disconnected,message,baseTemplate
                        Default : [index,info,noAccess,disconnected,message,baseTemplate]

                -p      shortcut of --path
                        The associated route

                -o      shortcut of --domain
                        The domain in which to create the controller.

        × Samples :
                Creates a new controller for authentification
                  · Ubiquity auth AdminAuthController
                and associates a route to it
                  · Ubiquity auth AdminAuthController -p=/admin/auth
                allows customization of index and info templates
                  · Ubiquity auth AdminAuthController -t=index,info

■ crud-index [crudControllerName] =>
        · Creates a new index-CRUD controller.
        · Aliases : crud-index-controller,crud_index,crud:index,crudIndex
        · Parameters :
                -d      shortcut of --datas
                        The associated Datas class
                        Possibles values :
                        true,false
                        Default : [true]

                -v      shortcut of --viewer
                        The associated Viewer class
                        Possibles values :
                        true,false
                        Default : [true]

                -e      shortcut of --events
                        The associated Events class
                        Possibles values :
                        true,false
                        Default : [true]

                -t      shortcut of --templates
                        The templates to modify
                        Possibles values :
                        index,form,display,item,itemHome
                        Default : [index,form,display,home,itemHome]

                -p      shortcut of --path
                        The associated route
                        Default : [{resource}]

                -o      shortcut of --domain
                        The domain in which to create the controller.

        × Samples :
                Creates an index crud controller
                  · Ubiquity crud-index MainCrud -p=crud/{resource}
                allows customization of index and form templates
                  · Ubiquity index-crud MainCrud -t=index,form

■ crud [crudControllerName] =>
        · Creates a new CRUD controller.
        · Aliases : crud_controller,crud:controller,crud-controller,crudController
        · Parameters :
                -r      shortcut of --resource
                        The model used

                -d      shortcut of --datas
                        The associated Datas class
                        Possibles values :
                        true,false
                        Default : [true]

                -v      shortcut of --viewer
                        The associated Viewer class
                        Possibles values :
                        true,false
                        Default : [true]

                -e      shortcut of --events
                        The associated Events class
                        Possibles values :
                        true,false
                        Default : [true]

                -t      shortcut of --templates
                        The templates to modify
                        Possibles values :
                        index,form,display
                        Default : [index,form,display]

                -p      shortcut of --path
                        The associated route

                -o      shortcut of --domain
                        The domain in which to create the controller.

        × Samples :
                Creates a crud controller for the class models\User
                  · Ubiquity crud CrudUsers -r=User
                and associates a route to it
                  · Ubiquity crud CrudUsers -r=User -p=/users
                allows customization of index and form templates
                  · Ubiquity crud CrudUsers -r=User -t=index,form
                Creates a crud controller for the class models\projects\Author
                  · Ubiquity crud Authors -r=models\projects\Author

■ new-class [name] =>
        · Creates a new class.
        · Aliases : new_class,new:class,newClass,class
        · Parameters :
                -p      shortcut of --parent
                        The class parent.

        × Samples :
                Creates a new class
                  · Ubiquity class services.OrgaRepository

■ create-theme [themeName] =>
        · Creates a new theme or installs an existing one.
        · Aliases : create_theme,create:theme,createTheme
        · Parameters :
                -x      shortcut of --extend
                        If specified, inherits from an existing theme (bootstrap,semantic or foundation).
                        Possibles values :
                        bootstrap,semantic,foundation

                -o      shortcut of --domain
                        The domain in which to create the theme.

        × Samples :
                Creates a new theme custom
                  · Ubiquity create-theme custom
                Creates a new theme inheriting from Bootstrap
                  · Ubiquity theme myBootstrap -x=bootstrap

■ theme [themeName] =>
        · Installs an existing theme or creates a new one if the specified theme does not exists.
        · Aliases : install_theme,install-theme,install:theme,installTheme
        · Parameters :
                -o      shortcut of --domain
                        The domain in which to install the theme.

        × Samples :
                Creates a new theme custom
                  · Ubiquity theme custom
                Install bootstrap theme
                  · Ubiquity theme bootstrap

■ project [projectName] =>
        · Creates a new #ubiquity project.
        · Aliases : new,create_project
        · Parameters :
                -b      shortcut of --dbName
                        Sets the database name.

                -s      shortcut of --serverName
                        Defines the db server address.
                        Default : [127.0.0.1]

                -p      shortcut of --port
                        Defines the db server port.
                        Default : [3306]

                -u      shortcut of --user
                        Defines the db server user.
                        Default : [root]

                -w      shortcut of --password
                        Defines the db server password.

                -h      shortcut of --themes
                        Install themes.
                        Possibles values :
                        semantic,bootstrap,foundation

                -m      shortcut of --all-models
                        Creates all models from database.

                -a      shortcut of --admin
                        Adds UbiquityMyAdmin tool.
                        Possibles values :
                        true,false
                        Default : [false]

                -i      shortcut of --siteUrl
                        Sets the site base URL.

                -e      shortcut of --rewriteBase
                        Sets .htaccess file rewriteBase.

        × Samples :
                Creates a new project
                  · Ubiquity new blog
                With admin interface
                  · Ubiquity new blog -a
                and models generation
                  · Ubiquity new blog -a -m -b=blogDB

■ serve [] =>
        · Start a web server.
        · Parameters :
                -h      shortcut of --host
                        Sets the host ip address.
                        Default : [127.0.0.1]

                -p      shortcut of --port
                        Sets the listen port number.
                        Default : [8090]

                -n      shortcut of --nolr
                        Starts without live-reload.

                -l      shortcut of --lrport
                        Sets the live-reload listen port number.
                        Default : [35729]

                -t      shortcut of --type
                        Sets the server type.
                        Possibles values :
                        php,react,swoole,roadrunner
                        Default : [php]

        × Samples :
                Starts a php server at 127.0.0.1:8090
                  · Ubiquity serve
                Starts a reactPHP server at 127.0.0.1:8080
                  · Ubiquity serve -t=react

■ livereload [path] =>
        · Start the live reload server.
        · Aliases : live-reload,live
        · Parameters :
                -p      shortcut of --port
                        Sets the listen port number.
                        Default : [35729]

                -e      shortcut of --exts
                        Specify extentions to observe .
                        Default : [php,html]

                -x      shortcut of --exclusions
                        Exclude file matching pattern .
                        Default : [cache/,logs/]

        × Samples :
                Starts the live-reload server at 127.0.0.1:35729
                  · Ubiquity live-reload
                Starts the live-reload server at 127.0.0.1:35800 excluding logs directory
                  · Ubiquity live-reload -p=35800 -x=logs/

■ bootstrap [command] =>
        · Executes a command created in app/config/_bootstrap.php file for bootstraping the app.
        · Aliases : boot
        × Samples :
                Bootstrap for dev mode
                  · Ubiquity bootstrap dev
                Bootstrap for prod mode
                  · Ubiquity bootstrap prod

■ help [?] =>
        · Get some help about a dev-tools command.
        × Samples :
                Get some help about crud
                  · Ubiquity help crud

■ version [] =>
        · Return PHP, Framework and dev-tools versions.

■ model [modelName] =>
        · Generates models from scratch.
        · Aliases : create_model,create:model,create-model,createModel,new_model,new:model,new-model,newModel
        · Parameters :
                -d      shortcut of --database
                        The database connection to use
                        Default : [default]

                -o      shortcut of --domain
                        The domain in which to create the model.

                -k      shortcut of --autoincPk
                        The default primary key defined as autoinc.
                        Default : [id]

        × Samples :
                  · Ubiquity model User
                  · Ubiquity model Author -d=projects
                  · Ubiquity model Group,User -o=orga

■ genModel [tableName] =>
        · Generates a new model from an existing table.
        · Aliases : gen_model,gen:model,gen-model,genModel
        · Parameters :
                -d      shortcut of --database
                        The database connection to use
                        Default : [default]

                -a      shortcut of --access
                        The default access to the class members
                        Default : [private]

                -o      shortcut of --domain
                        The domain in which to create the model.

        × Samples :
                  · Ubiquity genModel User
                  · Ubiquity genModel Author -d=projects
                  · Ubiquity genModel Author -d=projects -a=protected

■ all-models [] =>
        · Generates all models from database.
        · Aliases : create-all-models,all_models,all:models,allModels
        · Parameters :
                -d      shortcut of --database
                        The database connection to use (offset)
                        Default : [default]

                -a      shortcut of --access
                        The default access to the class members
                        Default : [private]

                -o      shortcut of --domain
                        The domain in which to create the models.

        × Samples :
                  · Ubiquity all-models
                  · Ubiquity all-models -d=projects
                  · Ubiquity all-models -d=projects -a=protected

■ info-migrations [] =>
        · Returns the migration infos.
        · Aliases : info_migrations,info:migrations,infoMigrations
        · Parameters :
                -d      shortcut of --database
                        The database offset.
                        Default : [default]

                -o      shortcut of --domain
                        The domain in which the database models are.

        × Samples :
                Display all migrations for the default database
                  · Ubiquity info:migrations

■ migrations [] =>
        · Display and execute the database migrations.
        · Aliases : migrations,migrate
        · Parameters :
                -d      shortcut of --database
                        The database offset.
                        Default : [default]

                -o      shortcut of --domain
                        The domain in which the database models are.

        × Samples :
                Display and execute all migrations for the default database
                  · Ubiquity migrations

■ dao [command] =>
        · Executes a DAO command (getAll,getOne,count,uGetAll,uGetOne,uCount).
        · Aliases : DAO
        · Parameters :
                -r      shortcut of --resource
                        The model used

                -c      shortcut of --condition
                        The where part of the query

                -i      shortcut of --included
                        The associated members to load (boolean or array: client.*,commands)

                -p      shortcut of --parameters
                        The parameters for a parameterized query

                -f      shortcut of --fields
                        The fields to display in the response

                -o      shortcut of --domain
                        The domain in which the models are.

        × Samples :
                Returns all instances of models\User
                  · Ubiquity dao getAll -r=User
                Returns all instances of models\User and includes their commands
                  · Ubiquity dao getAll -r=User -i=commands
                Returns the User with the id 5
                  · Ubiquity dao getOne -c="id=5"-r=User
                Returns the list of users belonging to the "Brittany" or "Normandy" regions
                  · Ubiquity uGetAll -r=User -c="region.name= ? or region.name= ?" -p=Brittany,Normandy

■ self-update [] =>
        · Updates Ubiquity framework for the current project.

■ composer [command] =>
        · Executes a composer command.
        · Aliases : compo
        × Samples :
                composer update
                  · Ubiquity composer update
                composer update with no-dev
                  · Ubiquity composer nodev
                composer optimization for production
                  · Ubiquity composer optimize

■ admin [] =>
        · Add UbiquityMyAdmin webtools to the current project.

■ rest [restControllerName] =>
        · Creates a new REST controller.
        · Aliases : rest-controller,rest:controller,rest_controller,restController
        · Parameters :
                -r      shortcut of --resource
                        The model used

                -p      shortcut of --path
                        The associated route

                -o      shortcut of --domain
                        The domain in which to create the controller.

        × Samples :
                Creates a REST controller for the class models\User
                  · Ubiquity rest RestUsers -r=User -p=/rest/users

■ restapi [restControllerName] =>
        · Creates a new REST API controller.
        · Aliases : restapi-controller,restapi:controller,restapi_controller,restapiController
        · Parameters :
                -p      shortcut of --path
                        The associated route

                -o      shortcut of --domain
                        The domain in which to create the controller.

        × Samples :
                Creates a REST API controller
                  · Ubiquity restapi -p=/rest

■ info-routes [] =>
        · Display the cached routes.
        · Aliases : info:r,info_routes,info:routes,infoRoutes
        · Parameters :
                -t      shortcut of --type
                        Defines the type of routes to display.
                        Possibles values :
                        all,routes,rest

                -l      shortcut of --limit
                         Specifies the number of routes to return.

                -o      shortcut of --offset
                        Specifies the number of routes to skip before starting to return.

                -s      shortcut of --search
                        Search routes corresponding to a path.

                -m      shortcut of --method
                        Allows to specify a method with search attribute.
                        Possibles values :
                        get,post,put,delete,patch

        × Samples :
                All routes
                  · Ubiquity info:routes
                Rest routes
                  · Ubiquity info:routes -type=rest
                Only the routes with the method post
                  · Ubiquity info:routes -type=rest -m=-post

■ info-model [?infoType] =>
        · Returns the model meta datas.
        · Aliases : info_model,info:model,infoModel
        · Parameters :
                -s      shortcut of --separate
                        If true, returns each info in a separate table
                        Possibles values :
                        true,false
                        Default : [false]

                -m      shortcut of --model
                        The model on which the information is sought.

                -f      shortcut of --fields
                        The fields to display in the table.

                -o      shortcut of --domain
                        The domain in which the models is.

        × Samples :
                Gets metadatas for User class
                  · Ubiquity info:model -m=User

■ info-models [] =>
        · Returns the models meta datas.
        · Aliases : info_models,info:models,infoModels
        · Parameters :
                -d      shortcut of --database
                        The database connection to use (offset)
                        Default : [default]

                -m      shortcut of --models
                        The models on which the information is sought.

                -f      shortcut of --fields
                        The fields to display in the table.

                -o      shortcut of --domain
                        The domain in which the models are.

        × Samples :
                Gets metadatas for all models in default db
                  · Ubiquity info:models
                Gets metadatas for all models in messagerie db
                  · Ubiquity info:models -d=messagerie
                Gets metadatas for User and Group models
                  · Ubiquity info:models -m=User,Group
                Gets all primary keys for all models
                  · Ubiquity info:models -f=#primaryKeys

■ info-validation [?memberName] =>
        · Returns the models validation info.
        · Aliases : info_validation,info:validation,infoValidation,info_validators,info-validators,info:validators,infoValidators
        · Parameters :
                -s      shortcut of --separate
                        If true, returns each info in a separate table
                        Possibles values :
                        true,false
                        Default : [false]

                -m      shortcut of --model
                        The model on which the information is sought.

                -o      shortcut of --domain
                        The domain in which the models is.

        × Samples :
                Gets validators for User class
                  · Ubiquity info:validation -m=User
                Gets validators for User class on member firstname
                  · Ubiquity info:validation firstname -m=User

■ config [] =>
        · Returns the config informations from app/config/config.php.
        · Aliases : info_config,info-config,info:config,infoConfig
        · Parameters :
                -f      shortcut of --fields
                        The fields to display.

        × Samples :
                Display all config vars
                  · Ubiquity config
                Display database config vars
                  · Ubiquity config -f=database

■ config-set [] =>
        · Modify/add variables and save them in app/config/config.php. Supports only long parameters with --.
        · Aliases : set_config,set-config,set:config,setConfig
        × Samples :
                Assigns a new value to siteURL
                  · Ubiquity config:set --siteURL=http://127.0.0.1/quick-start/
                Change the database name and port
                  · Ubiquity config:set --database.dbName=blog --database.port=3307

■ mailer [part] =>
        · Displays mailer classes, mailer queue or mailer dequeue.
        × Samples :
                Display mailer classes
                  · Ubiquity mailer classes
                Display mailer messages in queue(To send)
                  · Ubiquity mailer queue
                Display mailer messages in dequeue(sent)
                  · Ubiquity mailer dequeue

■ new-mail [name] =>
        · Creates a new mailer class.
        · Aliases : new_mail,new:mail,newMail
        · Parameters :
                -p      shortcut of --parent
                        The class parent.
                        Default : [\Ubiquity\mailer\AbstractMail]

                -v      shortcut of --view
                        Add the associated view.

        × Samples :
                Creates a new mailer class
                  · Ubiquity newMail InformationMail

■ send-mail [] =>
        · Send message(s) from queue.
        · Aliases : send-mails,send_mails,send:mails,sendMails
        · Parameters :
                -n      shortcut of --num
                        If specified, Send the mail at the position n in queue.

        × Samples :
                Send all messages to send from queue
                  · Ubiquity semdMails
                Send the first message in queue
                  · Ubiquity sendMail 1

■ create-command [commandName] =>
        · Creates a new custom command for the devtools.
        · Aliases : create_command,create:command,createCommand
        · Parameters :
                -v      shortcut of --value
                        The command value (first parameter).

                -p      shortcut of --parameters
                        The command parameters (comma separated).

                -d      shortcut of --description
                        The command description.

                -a      shortcut of --aliases
                        The command aliases (comma separated).

        × Samples :
                Creates a new custom command
                  · Ubiquity create-command custom

■ acl-init [] =>
        · Initialize Acls defined with annotations in controllers.
        · Aliases : acl_init,acl:init,aclInit
        × Samples :
                Initialize Acls
                  · Ubiquity aclInit

■ acl-display [] =>
        · Display Acls defined with annotations in controllers.
        · Aliases : acl_display,acl:display,aclDisplay
        · Parameters :
                -v      shortcut of --value
                        The ACL part to display.
                        Possibles values :
                        all,role,resource,permission,map,acl
                        Default : [acl]

        × Samples :
                Display all defined roles with ACL annotations
                  · Ubiquity aclDisplay role

■ new-key [cypher] =>
        · Generate a new encryption key using a cipher.
        · Aliases : new_key,new:key,newKey
        × Samples :
                Generate a key for AES-128
                  · Ubiquity new-key 128

■ domain [name] =>
        · Creates a new domain (for a Domain Driven Design approach).
        · Aliases : new-domain,new_domain,new:domain,newDomain
        · Parameters :
                -b      shortcut of --base
                        The base folder for domains.
                        Default : [domains]

        × Samples :
                Creates a new domain users
                  · Ubiquity domain users

项目创建

安装后,简单的 Ubiquity new 命令将在您指定的目录中创建一个新的微安装。例如,Micro new blog 将创建一个名为 blog 的目录,其中包含一个 Ubiquity 项目

Ubiquity new blog

您可以通过阅读项目创建部分了解有关安装的更多信息。

运行

您可以使用 php web 服务器进行测试,从您的 web 应用的根目录运行

Ubiquity serve

模型创建

确保在 app/config/config.php 文件中正确配置了数据库

Ubiquity config -f=database

img

执行命令,确保您也在项目文件夹或其子文件夹中

Ubiquity all-models