addColumn("area_id", "integer", Array("null" => false)); \$table->addColumn("name", "string", Array("null" => false)); \$table->addColumn("description", "text", Array("null" => true)); //\$table->addColumn("time", "timestamp", Array("null" => true, "default"=>null)); \$table->addTimestamps(); \$table->addSoftDelete(); \$table->create(); Migrator::getInstance()->update_plugin_version("{{PLUGIN_NAME}}", "1.0.0"); return; } //if (\$pluginversion < "1.0.1") { // \$table = Wrapper::get_table("{{PLUGIN_NAME}}s"); // Migrator::getInstance()->update_plugin_version("{{PLUGIN_NAME}}", "1.0.1"); // return; //} } function {{PLUGIN_NAME}}_rollback(\$pluginversion) { if(\$pluginversion > "0.0.1"){ \$table = Wrapper::get_table("{{PLUGIN_NAME}}s"); \$table->drop(); return; } } EOL; private $versionBase = <<name = "{{PLUGIN_NAME}}"; \$plugin->version = "0.0.0"; //\$plugin->require = Array( ["name" => "plugin_name", "version" => "x.x.x"] ); EOL; private $controllerBase = << \$list)); } /** * Create * * Render the main {{OBJECT}} formulary */ function create(){ Output::render('form', ['id' => 0]); } /** * Store * * Store the param on the database * @param {{OBJECT}} \${{OBJECT_LOWER}} */ function store({{OBJECT}} \${{OBJECT_LOWER}}){ } /** * Search * * Store the param on the database * @param {{OBJECT}} \${{OBJECT_LOWER}} */ function search(){ } /** * Show * * Render one register * * @param {{OBJECT}} \${{OBJECT_LOWER}} */ function show({{OBJECT}} \${{OBJECT_LOWER}}){ } /** * Edit * * Render the formular for a database {{OBJECT}} * * @param {{OBJECT}} \${{OBJECT_LOWER}} */ function edit({{OBJECT}} \${{OBJECT_LOWER}}){ Output::render('form', \${{OBJECT_LOWER}}); } /** * Update * Store the changes of the param on the database * * @param {{OBJECT}} \${{OBJECT_LOWER}} */ function update({{OBJECT}} \${{OBJECT_LOWER}}){ } /** * Destroy * If the object has soft delete. * * @param {{OBJECT}} \${{OBJECT_LOWER}} */ function destroy({{OBJECT}} \${{OBJECT_LOWER}}){ } /** * Purge * Remove object even with soft delete. * * @param {{OBJECT}} \${{OBJECT_LOWER}} */ function purge({{OBJECT}} \${{OBJECT_LOWER}}){ } } EOL; private $objectBase = << "", "min" => 0, "max" => 100000, "step" => 2); const _tableName = "{{TABLE_NAME}}s"; /*const _properties = Array( "id" => ['listable' => true, 'searcheble' => false, 'orderable' => false], "name" => ['listable' => true, 'searcheble' => true]); */ const _properties = Array( 'id', 'name', 'description' ); /*protected \$_ignore = Array( );*/ const _listable = Array( 'id', 'name' ); const _searchable = Array( 'name' ); const _orderable = Array( ); /*const _datatables = Array( );*/ //const _timestamps = true; //const _softdelete = true; //const _connectionName = ""; } EOL; private $routeBase = << 'nav-link']); }, -10)->doIgnore(); RouteCollection::group("/{{PLUGIN_NAME}}", function(){ RouteCollection::get ("/", "\{{NAMESPACE}}\{{CONTROLLER}}@index"); RouteCollection::get ("/form", "\{{NAMESPACE}}\{{CONTROLLER}}@create"); RouteCollection::post ("/", "\{{NAMESPACE}}\{{CONTROLLER}}@store"); RouteCollection::post ("/search", "\{{NAMESPACE}}\{{CONTROLLER}}@search"); RouteCollection::get ("/[i:id]", "\{{NAMESPACE}}\{{CONTROLLER}}@show"); RouteCollection::get ("/[i:id]/edit", "\{{NAMESPACE}}\{{CONTROLLER}}@edit"); RouteCollection::put ("/[i:id]/edit", "\{{NAMESPACE}}\{{CONTROLLER}}@update"); RouteCollection::delete("/[i:id]", "\{{NAMESPACE}}\{{CONTROLLER}}@destroy"); }); EOL; private $indexTemplate = << Adicionar EOL; private $formTemplate = << {{/id}} {{^id}}
{{/id}}
Header
Header
Header
EOL; private $todoList = <<langBase = str_replace("{{PLUGIN_NAME}}", $plugin_name, $this->langBase); $this->langBase = str_replace("{{PLUGIN_NAME_PRETTY}}", $plugin_name_pretty, $this->langBase); file_put_contents(DIR_APP.$subname . "/" . $name . "/lang/en.php", $this->langBase); file_put_contents(DIR_APP.$subname . "/" . $name . "/lang/".APP_LANG.".php", $this->langBase); $this->migrationBase = str_replace("{{PLUGIN_NAME}}", $subname."_".$plugin_name, $this->migrationBase); file_put_contents(DIR_APP.$subname . "/" . $name . "/db/Migrate.php", $this->migrationBase); $this->routeBase = str_replace("{{NAMESPACE}}", $namespace, $this->routeBase); $this->routeBase = str_replace("{{PLUGIN_NAME}}", $plugin_name, $this->routeBase); $this->routeBase = str_replace("{{CONTROLLER}}", $controller, $this->routeBase); file_put_contents(DIR_APP.$subname . "/" . $name . "/Routes.php", $this->routeBase); $this->objectBase = str_replace("{{NAMESPACE}}", $namespace."\Classes", $this->objectBase); $this->objectBase = str_replace("{{OBJECT}}", $object, $this->objectBase); $this->objectBase = str_replace("{{TABLE_NAME}}", $name, $this->objectBase); file_put_contents(DIR_APP.$subname . "/" . $name . "/classes/$object.php", $this->objectBase); $this->controllerBase = str_replace("{{NAMESPACE}}", $namespace, $this->controllerBase); $this->controllerBase = str_replace("{{PLUGIN_NAME}}", $plugin_name, $this->controllerBase); $this->controllerBase = str_replace("{{OBJECT}}", $object, $this->controllerBase); $this->controllerBase = str_replace("{{OBJECT_LOWER}}",strtolower($object), $this->controllerBase); $this->controllerBase = str_replace("{{CONTROLLER}}", $controller, $this->controllerBase); file_put_contents(DIR_APP.$subname . "/" . $name . "/$controller.php", $this->controllerBase); $this->versionBase = str_replace("{{PLUGIN_NAME}}", $subname."_".$plugin_name, $this->versionBase); file_put_contents(DIR_APP.$subname . "/" . $name . "/version.php", $this->versionBase); $this->indexTemplate = str_replace("{{ENDPOINT}}", $plugin_name, $this->indexTemplate); file_put_contents(DIR_APP.$subname . "/" . $name . "/views/index.mustache", $this->indexTemplate); $this->formTemplate = str_replace("{{ENDPOINT}}", $plugin_name, $this->formTemplate); file_put_contents(DIR_APP.$subname . "/" . $name . "/views/form.mustache", $this->formTemplate); file_put_contents(DIR_APP.$subname . "/" . $name . "/todo.md", $this->todoList); } function listRoutes(){ echo str_pad("VERB", 10, " ", STR_PAD_BOTH) . "||"; echo str_pad("URI" , 35, " ", STR_PAD_BOTH) . "||"; echo str_pad("W", 5, " ", STR_PAD_BOTH) . "||"; echo str_pad("FUNCTION", 60, " ", STR_PAD_BOTH) . "\n"; echo str_pad("", 120, "-") . "\n"; foreach(\Routes\RouteCollection::returnRoutes() as $route){ echo str_pad(implode($route->_verb , ", "), 10, " ", STR_PAD_BOTH) . "||"; echo str_pad($route->_uri, 35, " ", STR_PAD_RIGHT) . "||"; echo str_pad($route->_weight, 5, " ", STR_PAD_BOTH). "||"; if( gettype($route->_callback[0]) == "object" ){ echo str_pad("Clousure", 60, " ", STR_PAD_RIGHT); }else{ echo str_pad($route->_callback[0], 30, " ", STR_PAD_RIGHT); } echo "\n"; } } }