d3yii2 / d3printeripp
IPP Printer Management Component for Yii2
dev-main
2026-02-25 13:22 UTC
Requires
- php: >=7.4
- ext-curl: *
- cornernote/yii2-returnurl: *
- d3yii2/d3system: *
- obray/ipp: *
- unyii2/yii2-panel: *
- yiisoft/yii2: ~2.0.14
This package is auto-updated.
Last update: 2026-02-25 13:22:30 UTC
README
A PHP 7.4+ package for managing IPP printers in Yii2 applications using the nateobray/IPP library.
Installation
to composer add
"repositories": [ { "type": "git", "url": "https://github.com/DBRisinajumi/IPP.git"}, ]
composer require yourcompany/yii2-ipp-printer-manager
Configuration
In config console add comand:
'controllerMap' => [ 'printeripp' => 'd3yii2\d3printeripp\commands\PrinterCommand', 'printeripp-spool' => 'd3yii2\d3printeripp\commands\SpoolerCommand', ],
Add the components
'modules' => [ 'd3printeripp' => [ 'class' => 'd3yii2\d3printeripp\Module', /** roles for view dashboard panel */ 'panelViewRoleNames' => ['D3PrinterViewPanel'], ], ], 'components' => [ /** use for printer files spooling */ 'printerSpooler' => [ 'class' => 'd3yii2\d3printer\components\Spooler', 'baseDirectory' => 'd3printer' ], /** define alert config for printers. class d3yii2\d3printeripp\components\components */ 'ippAlertConfig' => [ 'class' => 'ea\app\components\IppPrinter3002dnAlertConfig' ], /** define mailer for printers. */ 'ippPrinterMailer' => [ 'class' => 'd3yii2\d3printeripp\components\Mailer', 'from' => 'zzzz@zzzz.lv', 'to' => ['zz@sss.lv'], ], /** define printer status cache */ 'printerStatusCache' => [ 'class' => 'd3yii2\d3printeripp\components\cache\PrinterCache', ], /** define printer component */ 'ippTest' => [ 'class' => '\d3yii2\d3printeripp\components\BasePrinter', 'printerName' => 'ippTest', 'name' => 'ippTest', 'host' => '192.168.88.168', 'port' => 631, 'username' => 'admin', 'password' => '', 'pincode' => '111111', 'timeout' => 30, 'encryption' => false, 'spoolerComponentName' => 'printerSpooler', 'alertConfigComponentName' => 'ippAlertConfig', 'mailerComponentName' => 'ippPrinterMailer', 'cacheComponentName' => 'printerStatusCache', // 'pageOrientation' => 3, // d3yii2\d3printeripp\types\PrinterAttributeValues::ORIENTATION_PORTRAIT 'pageOrientation' => 4, // d3yii2\d3printeripp\types\PrinterAttributeValues::LANDSCAPE // 'pageSize' => 'iso_a4_210x297mm', // d3yii2\d3printeripp\types\PrinterAttributeValues::MEDIA_SIZE_A4 'pageSize' => 'iso_a5_148x210mm', // d3yii2\d3printeripp\types\PrinterAttributeValues::MEDIA_SIZE_A5 ], ],
Usage command
show printer ippTest status
php yii printeripp/status ippTest
show printer ippTest status
php yii printeripp/status ippTest 0 1
check alert and send one time alert email Mostly add to crontab
php yii printeripp/status ippTest 0 1
spooler printing - create as deamon
php yii printeripp-spool/index spoolerPrinting
Dashboard panel
$config['components']['dashboard']['panels']['notifications'][] = [ 'route' => '/d3printeripp/printer-panel/dashboard', 'params' => [ 'printerComponentName' => 'ippTest' ], 'tag' => 'div', 'options' => ['class' => 'col-sm-6 col-md-4 col-lg-3'] ];
Basic Printing
Yii::$app->ippTest->printToSpoolDirectory($filePath),
Printer Monitoring
create deamon or add to crontab
php yii printeripp/status ippTest 0 1
set on system
- in web config define module d3printeripp. Use in dashboard panel.
- create service components. If neccesery many same configuration for printers, use same components:
- ippAlertConfig - alert configuration - create class lika doc/examples/IppPrinter3002dnAlertConfig.php
- ippPrinterMailer - for sending alert email
- printerSpooler - for spooling files for printers
- printerStatusCache - for cashing actual printer actual status. Use in dashboard panel
- spoolerPrinting - for daemon, what print files to printer
- add to dashboard panel.
- create crontab job for printer monitoring: php yii printeripp/status atlikumiMpPrinterIpp 0 1
- create daemon for printing spooled foles to printers: php yii printeripp-spool/index spoolerPrinting printercomponent1,printercomponent2