示例#1
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     if (is_dir(app_path('Http/Forms'))) {
         foreach (\File::allFiles(app_path('Http/Forms')) as $f) {
             $class = \App::getNamespace() . 'Http\\Forms\\' . str_replace('.php', '', $f->getFilename());
             Register::container($class);
         }
     }
     //добавим геттеры в контейнеры
     //добавим сеттеры в контейнеры
     foreach (Register::$containers as $container) {
         $this->info($container);
         foreach ($this->form_element_methods_get as $method) {
             $params = $this->getMethodParams($container, $method);
             $this->putPhpDoc($container, 'string', $method, $params);
         }
         foreach ($this->form_element_methods_set as $method) {
             $params = $this->getMethodParams($container, $method);
             $this->putPhpDoc($container, $container, $method, $params);
         }
     }
     //добавим элементы в контейнеры
     $i = 0;
     foreach (Register::$elements as $name => $data) {
         $this->info(++$i . ') ' . $name);
         $class = Arr::get($data, 'class');
         foreach (Register::$containers as $container) {
             $params = $this->getMethodParams($class, 'laraform');
             $method = \Illuminate\Support\Str::camel('put_' . $name);
             $this->putPhpDoc($container, $class, $method, $params);
         }
         foreach ($this->form_element_methods_get as $method) {
             $params = $this->getMethodParams($class, $method);
             $this->putPhpDoc($class, 'string', $method, $params);
         }
         foreach ($this->form_element_methods_set as $method) {
             $params = $this->getMethodParams($class, $method);
             $this->putPhpDoc($class, $class, $method, $params);
         }
     }
     $data = $this->ret;
     $content = \View::make('quickform::ide-helper', ['data' => $data, 'tab' => "\t"]);
     file_put_contents(base_path() . '/_ide_helper_laraform.php', $content);
     $this->info('IDE helper сгенерирован для ' . count($this->classes) . ' элементов');
 }
示例#2
0
 /**
  * Appends an element to the container, creating it first
  *
  * The element will be created via {@link HTML_QuickForm2_Factory::createElement()}
  * and then added via the {@link appendChild()} method.
  * The element type is deduced from the method name.
  * This is a convenience method to reduce typing.
  *
  * @param string $m Method name
  * @param array  $a Method arguments
  *
  * @return   LaraFormNode     Added element
  * @throws   \HTML_QuickForm2_InvalidArgumentException
  * @throws   \HTML_QuickForm2_NotFoundException
  */
 public function __call($m, $a)
 {
     if (preg_match('/^(add)([a-zA-Z0-9_]+)$/', $m, $match)) {
         if ($match[1] == 'add') {
             $type = strtolower($match[2]);
             $name = isset($a[0]) ? $a[0] : null;
             $attr = isset($a[1]) ? $a[1] : null;
             $data = isset($a[2]) ? $a[2] : [];
             return $this->addElement($type, $name, $attr, $data);
         }
     }
     if (preg_match('/^(put)([a-zA-Z0-9_]+)$/', $m, $match)) {
         if ($match[1] == 'put') {
             $type = \Illuminate\Support\Str::snake($match[2]);
             $callback = \Larakit\QuickForm\Register::callback($type);
             if (!is_callable($callback)) {
                 throw new \Exception('Элемент с типом ' . $type . ' не зарегистрирован');
             }
             $el = $this->addElement(call_user_func_array($callback, $a));
             return $el;
         }
     }
     throw new \Exception("Fatal error: Call to undefined method " . get_class($this) . "::" . $m . "()", E_USER_ERROR);
 }
示例#3
0
文件: quickform.php 项目: larakit/lk
\HTML_QuickForm2_Renderer::register('larakit_form', Larakit\QuickForm\LaraFormRenderer::class, realpath(__DIR__ . '/QuickForm/LaraFormRenderer.php'));
//регистрируем команду
Larakit\Boot::register_command(\Larakit\QuickForm\CommandQuickformIde::class);
Larakit\Boot::register_command(\Larakit\QuickForm\CommandQuickformMakeForm::class);
Larakit\Boot::register_provider(\Larakit\QuickForm\LarakitServiceProvider::class);
\Larakit\QuickForm\Register::container(Larakit\QuickForm\LaraForm::class);
\Larakit\StaticFiles\Manager::package('pear/html_quickform2')->cssPackage('quickform.css')->jsPackage('js/quickform.js')->scopeInit('hierselect', ['/packages/pear/html_quickform2/js/quickform-hierselect.js'])->scopeInit('repeat', ['/packages/pear/html_quickform2/js/quickform-repeat.js'])->setSourceDir('data');
\Larakit\QuickForm\Register::register('button_link_twbs', 'qf_button_link_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('button_twbs', 'qf_button_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('checkbox_twbs', 'qf_checkbox_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('group_checkbox_twbs', 'qf_checkbox_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('group_checkbox_button_twbs', 'qf_checkbox_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('daterangepicker_twbs', 'qf_daterangepicker_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('datetime_twbs', 'qf_datetime_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('date_twbs', 'qf_date_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('time_twbs', 'qf_time_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('email_twbs', 'qf_email_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('group_twbs', 'qf_group_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('number_twbs', 'qf_number_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('password_twbs', 'qf_password_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('radio_twbs', 'qf_radio_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('group_radio_twbs', 'qf_group_radio_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('group_radio_button_twbs', 'qf_group_radio_button_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('select2_twbs', 'qf_select2_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('select_twbs', 'qf_select_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('static_twbs', 'qf_static_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('submit_twbs', 'qf_submit_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('switch_twbs', 'qf_switch_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('text_twbs', 'qf_text_twbs', __DIR__ . '/views');
\Larakit\QuickForm\Register::register('textarea_twbs', 'qf_textarea_twbs', __DIR__ . '/views');
示例#4
0
文件: TraitNode.php 项目: larakit/lk
 function getTpl()
 {
     $type = $this->getType();
     $namespace = Register::getNamespace($type);
     $tpl = $this->laraGet(__FUNCTION__);
     if (!$tpl) {
         return $namespace . '::!.quickform.' . $type;
     }
     return $tpl;
 }