PHP code example of telnowedge / freepbx-base
1. Go to this page and download the library: Download telnowedge/freepbx-base library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
telnowedge / freepbx-base example snippets
return PhpCsFixer\Config::create()
->setRiskyAllowed(true)
->setRules([
'@Symfony' => true,
'@Symfony:risky' => true,
'array_syntax' => true,
'combine_consecutive_unsets' => true,
'no_useless_else' => true,
'no_useless_return' => true,
'ordered_class_elements' => true,
'ordered_imports' => true,
'php_unit_strict' => true,
'strict_comparison' => true,
'strict_param' => true,
])
->setFinder(PhpCsFixer\Finder::create()
->exclude('vendor')
->in(__DIR__)
)
;
namespace FreePBX\modules;
use TelNowEdge\FreePBX\Base\Module\Module;
class Foo extends Module implements \BMO
{
}
namespace FreePBX\modules;
use TelNowEdge\FreePBX\Base\Module\Module;
use TelNowEdge\Module\foo\Controller\FooBarController;
class Foo extends Module implements \BMO
{
public function install()
{
$this
->get('TelNowEdge\Module\foo\Resources\Migrations\TableMigration')
->migrate()
;
}
public static function myGuiHooks()
{
return array('core');
}
public function doGuiHook(&$cc)
{
$this
->processDeviceGui($cc)
;
}
private function processDeviceGui(&$cc)
{
$request = $this->get('request');
if ('devices' === $request->query->get('display')) {
if (true === $request->isMethod('POST')) {
if ('edit' === $request->request->get('action')) {
$this->get(FooBarController::class)
->updateAction($request, $cc)
;
}
if ('add' === $request->request->get('action')) {
$this->get(FooBarController::class)
->createAction($request, $cc)
;
}
} else {
$this->get(FooBarController::class)
->showAction($request, $cc)
;
}
}
}
}
namespace TelNowEdge\Module\foo\Controller;
use TelNowEdge\FreePBX\Base\Controller\AbstractController;
class FooBarController extends AbstractController
{
[...]
}
protected $container;
FormFactory function createForm(FormInterface $type, $data = null, array $options = array());
string function render(string $templatePath, array $data = array());
mixed function get(string $service);
$html = $this->render('foo.html.twig', array(
'form' => $form->createView(),
));
$cc->addguielem(_('Foo'), new \gui_html('Foo', $html), 1, null, _('TelNowEdge'));
namespace TelNowEdge\Module\foo\Model;
use Symfony\Component\Validator\Constraints as Assert;
class Foo
{
protected $id;
/**
* @Assert\NotBlank()
*/
protected $name;
public function getId()
{
return $this->id;
}
public function setId($id)
{
$this->id = $id;
return $this;
}
public function getName()
{
return $this->name;
}
public function setName($name)
{
$this->name = $name;
return $this;
}
}
array sqlToArray(array $sqlRes);
\Doctrine\DBAL\Statement fetch(\Doctrine\DBAL\Statement $stmt);
\Doctrine\DBAL\Statement fetchAll(\Doctrine\DBAL\Statement $stmt);
Model objectFromArray(string $modelClass, array $sqlToArrayRes);
array(
't' => array('id' => '1', 'name' => 'foo', 'longName' => 'foobar'),
't2' => array('id' => 1)
)
private function mapModel(array $res)
{
$foo = $this->objectFromArray(Foo::class, $res['t']);
$fooBar = $this->objectFromArray(FooBar::class, $res['t2']);
return $foo->setFooBar($fooBar);
}
namespace TelNowEdge\Module\foo\Handler\DbHandler;
use TelNowEdge\FreePBX\Base\Handler\AbstractDbHandler;
use TelNowEdge\Module\foo\Model\Foo;
class PhoneProvisionDbHandler extends AbstractDbHandler
{
public function create(Foo $foo)
{
$sql = "INSERT INTO Foo (`id`, `name`, `value`) VALUES (:id, :name, :value)";
$stmt = $this->connection->prepare($sql);
$stmt->bindParam('id', $foo->getId());
$stmt->bindParam('name', $foo->getName());
$stmt->bindParam('value', $foo->getValue());
$stmt->execute();
}
bash
composer.phar dump-autoload
bash
$ composer