Какие-нибудь хорошие PHP-совместимые фреймворки PHP?

Я ищу веб-платформу отчетности, которая основана на PHP и работает с MySQL.

Вот моя проблема (помимо того, что я слишком ленив, чтобы запрограммировать это самостоятельно): у меня есть большая таблица (50k + rows), в которой хранятся данные журнала для нескольких клиентов. Эти клиенты должны иметь возможность сортировать и искать и делать все эти грандиозные вещи.

Мне действительно понравилось бы что-то с приличным количеством энергии за этим, и именно поэтому я опасаюсь построить его самостоятельно. Это недостаточно для того, чтобы заслуживать чрезмерного количества времени, но это является необходимой функцией для моих клиентов.

В идеале, я бы хотел, чтобы какая-то структура, которую я могу либо передавать, либо сам получить данные с помощью механизма шаблонов (так что это сделает всю презентацию). Я мог бы получить визуализированную презентацию и перенести ее на свой сайт.

Что-то приятное, вероятно, не существует, но, может быть, мне повезет.

Solutions Collecting From Web of "Какие-нибудь хорошие PHP-совместимые фреймворки PHP?"

Я нашел достойную замену, которая подходит мне очень хорошо: плагин Symfony под названием laiguExtGridPlugin . Это не фреймворк, но он использует вызовы JSON для получения данных и отображения их с сортировкой и разбиением на страницы. Я еще не реализовал его, но сегодня я буду читать исходный код, чтобы посмотреть, как это сделать – в плагине очень мало документации, идите по фигуре. В конце концов, я опубликую что-нибудь в своем блоге, когда я его реализую.

Обновление: laiguExtGridPlugin был реализован, но он сидит ontop библиотеки Javascript под названием ext . Эта библиотека массивная, более 27 мегабайт. Это для полной библиотеки. Часть, которую я использую, составляет около 100 КБ. Я также использую jQuery, поэтому загрузка обеих библиотек (что, к счастью, это только для одной страницы) совершенно неприемлема. Я переключусь на систему сетки jQuery.

Я также нашел коммерчески лицензированный плагин jQuery под названием jqGrid от Trirand. Это немного отличается от моего ценового диапазона в 599 долларов за лицензию на одно место с подпиской, источником и приоритетной поддержкой или 450 долларов за лицензию. Тем не менее, он выглядит довольно хорошо и очень напоминает мне о новых пользовательских интерфейсах Msoft Office.

На данный момент первый будет очень хорош; однако, я собираюсь оглянуться на рамки. Я могу просто сделать это сам.

Если у вас уже нет, я бы попробовал предложение Романа. Agiletoolkit под 6 Мбайт для всего и загружает только те части, которые вам нужны на странице, но пример, который он предоставил в приведенном выше коде, – это все, что вам нужно, чтобы создать сетку, отображающую данные из таблицы.

Строка setSource определяет, какая таблица будет извлекаться из mysql, в этом случае таблица «пользователь»

$g->setSource('user'); 

и если вам нужно принудительно ввести ограничение на возвращаемые строки, а не позволить пользователю фильтровать их, например, просто перечисляя парней, вы можете добавить

  $g->addCondition('gender','M'); 

Я думаю, что есть несколько опций экспорта для MVCGrid в каталоге atk4-addons, поэтому вы можете добавить экспорт данных Excel или PDF в сетку, хотя у меня не было времени самостоятельно изучить эти параметры – просто заметил export.php в аддонов.

Это можно сделать просто в Agile Toolkit , который также будет интегрировать jQuery и AJAX.

1.git clone git: //github.com/atk4/atk4.git

(альтернативно вы можете скачать комплект)

2.config.php:

 <?php $config["atk"]["base_path"]="./atk4/"; $config["dsn"]='mysql://root:root@localhost/project'; $config['url_postfix']='.php'; 

3.index.php:

 <?php include'atk4/loader.php'; class MyApp extends ApiFrontend { function init(){ parent::init(); $this->add('jUI'); $this->add('BasicAuth')->allow('demo','demo')->check(); $this->add('Menu',null,'Menu') ->addMenuItem('report','index') ->addMenuItem('logout'); } function page_index($p){ $this->dbConnect(); $f=$p->add('Filter',null,null,array('form_empty')); $f->addField('line','name'); $f->addField('line','surname'); $f->addSubmit('Search'); $g=$p->add('Grid'); $g->setSource('user'); $g->addColumn('text','gender')->makeSortable(); $g->addColumn('text','name')->makeSortable(); $g->addColumn('text','surname')->makeSortable(); $g->addPaginator(25); $f->useDQ($g->dq); } } $api=new MyApp('myapp'); $api->main(); из <?php include'atk4/loader.php'; class MyApp extends ApiFrontend { function init(){ parent::init(); $this->add('jUI'); $this->add('BasicAuth')->allow('demo','demo')->check(); $this->add('Menu',null,'Menu') ->addMenuItem('report','index') ->addMenuItem('logout'); } function page_index($p){ $this->dbConnect(); $f=$p->add('Filter',null,null,array('form_empty')); $f->addField('line','name'); $f->addField('line','surname'); $f->addSubmit('Search'); $g=$p->add('Grid'); $g->setSource('user'); $g->addColumn('text','gender')->makeSortable(); $g->addColumn('text','name')->makeSortable(); $g->addColumn('text','surname')->makeSortable(); $g->addPaginator(25); $f->useDQ($g->dq); } } $api=new MyApp('myapp'); $api->main(); 

Особенности: разбиение на страницы, сортировка, фильтрация, и вы можете настроить все. Agile toolkit имеет обширную документацию и учебную книгу.

Вы можете войти в систему с помощью u: demo, p: demo

PHPRunner – генератор кода PHP

Есть и это , но я не знаю, хотите ли вы, чтобы он был бесплатным.

Также есть инструмент для создания кросс-платформенных инструментов (который не находится в PHP).

Вы можете попробовать KoolReport .

Отказ от ответственности: Я работаю над этим проектом.

Это фреймворк отчетности, именно то, что вы ищете. Вы можете загружать фреймворк через веб-сайт, клонировать проект из github или использовать композитор для установки: для composer require koolphp/koolreport .

После установки здесь приведен базовый пример создания отчета о продаже

index.php : это файл начальной загрузки

 <?php require_once "SalesByCustomer.php"; $salesByCustomer = new SalesByCustomer; $salesByCustomer->run()->render(); 

SaleByCustomer.php : Этот файл определяет соединение и процесс передачи данных

 <?php require_once "koolreport/autoload.php"; use \koolreport\processes\Group; use \koolreport\processes\Limit; use \koolreport\processes\Sort; class SalesByCustomer extends \koolreport\KoolReport { public function settings() { return array( "dataSources"=>array( "sales"=>array( "connectionString"=>"mysql:host=localhost;dbname=db_sales", "username"=>"root", "password"=>"", "charset"=>"utf8" ) ) ); } public function setup() { $this->src('sales') ->query("SELECT customerName,dollar_sales FROM customer_product_dollarsales") ->pipe(new Group(array( "by"=>"customerName", "sum"=>"dollar_sales" ))) ->pipe(new Sort(array( "dollar_sales"=>"desc" ))) ->pipe(new Limit(array(10))) ->pipe($this->dataStore('sales_by_customer')); } } 

SalesByCustomer.view.php : этот файл представления, в котором вы можете визуализировать данные

 <?php use \koolreport\widgets\koolphp\Table; use \koolreport\widgets\google\BarChart; ?> <div class="text-center"> <h1>Sales Report</h1> <h4>This report shows top 10 sales by customer</h4> </div> <hr/> <?php BarChart::create(array( "dataStore"=>$this->dataStore('sales_by_customer'), "width"=>"100%", "height"=>"500px", "columns"=>array( "customerName"=>array( "label"=>"Customer" ), "dollar_sales"=>array( "type"=>"number", "label"=>"Amount", "prefix"=>"$", ) ), "options"=>array( "title"=>"Sales By Customer" ) )); ?> <?php Table::create(array( "dataStore"=>$this->dataStore('sales_by_customer'), "columns"=>array( "customerName"=>array( "label"=>"Customer" ), "dollar_sales"=>array( "type"=>"number", "label"=>"Amount", "prefix"=>"$", ) ), "cssClass"=>array( "table"=>"table table-hover table-bordered" ) )); ?> 

И вот результат .

В принципе, вы можете одновременно получать данные из многих источников данных, транслировать их через процессы, а затем сохранять результат в хранилище данных. Затем данные в хранилище данных будут доступны в представлении для получения визуализации. Графики Google интегрированы в рамки, поэтому вы можете сразу использовать красивые диаграммы и графики.

Хорошо, вот несколько хороших ссылок:

  1. Расширенные примеры KoolReport : см. Еще несколько хороших примеров
  2. Doc – Источники данных : поддержка MySQL, Oracle, SQLServer, MongoDB, CSV, Microsoft Excel ..
  3. Doc – обработка данных : анализ и преобразование данных
  4. Doc – визуализация данных : визуализируйте свои данные с помощью диаграмм, таблиц и т. Д.
  5. Проект на Github .

Надеюсь, это поможет.

есть несколько инструментов, которые, я считаю, могут вам помочь:

http://mydbr.com/ : Может помочь вам преобразовать ваши SQL-запросы в профессиональные отчеты

http://mysqlreports.com : интерфейс стиля мастера, который может помочь вам создавать отчеты PHP для MySQL (вы можете так искать и сортировать), он поддерживает логин участника