1. Go to this page and download the library: Download popphp/pop-code 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/ */
popphp / pop-code example snippets
use Pop\Code\Generator;
$function = new Generator\FunctionGenerator('sayHello');
$function->addArgument('name', 'null', 'string');
$function->setBody("echo 'Hello ' . \$name;");
$function->addReturnType('void');
$function->setDesc('This is the first function');
echo $function;
/**
* This is the first function
*
* @param string|null $name
* @return void
*/
function sayHello(string|null $name = null): void
{
echo 'Hello ' . $name;
}
use Pop\Code\Generator;
// Create the class object and give it a namespace
$class = new Generator\ClassGenerator('MyClass');
$class->setNamespace(new Generator\NamespaceGenerator('MyApp'));
// Create a new protected property with a default value
$prop = new Generator\PropertyGenerator('foo', 'string', null, 'protected');
// Create a method and give it an argument, body and docblock description
$method = new Generator\MethodGenerator('setFoo', 'public');
$method->addArgument('foo', null, 'string')
->setBody('$this->foo = $foo;')
->addReturnType('void')
->setDesc('This is the method to set foo.');
// Add the property and the method to the class code object
$class->addProperty($prop);
$class->addMethod($method);
// Save the class to a file
$code = new Generator($class);
$code->writeToFile('MuClass.php');
/**
* @namespace
*/
namespace MyApp;
class MyClass
{
/**
* @var string
*/
protected string|null $foo = null;
/**
* This is the method to set foo.
*
* @param string $foo
* @return void
*/
public function setFoo(string $foo): void
{
$this->foo = $foo;
}
}
use Pop\Code\Generator;
$function1 = new Generator\FunctionGenerator('sayHello');
$function1->addArgument('name', null, 'string')
->setBody("echo 'Hello ' . \$name;")
->setDesc('This is the first function')
->addReturnType('void');
$function2 = new Generator\FunctionGenerator('sayGoodbye');
$function2->addArgument('name', null, 'string')
->setBody("echo 'Goodbye ' . \$name;")
->setDesc('This is the second function')
->addReturnType('void');
$code = new Generator();
$code->addCodeObjects([$function1, $function2]);
$code->writeToFile('functions.php');
/**
* This is the first function
*
* @param string $name
* @return void
*/
function sayHello(string $name): void
{
echo 'Hello ' . $name;
}
/**
* This is the second function
*
* @param string $name
* @return void
*/
function sayGoodbye(string $name): void
{
echo 'Goodbye ' . $name;
}
use Pop\Code\Reflection;
use Pop\Code\Generator;
$class = Reflection::createClass('MyApp\MyClass');
// Create the new method that you want to add to the existing class
$method = new Generator\MethodGenerator('hasFoo', 'public');
$method->addArgument('foo', null, 'string')
->setBody('return ($this->foo !== null);')
->setDesc('This is the method to see if foo is set.')
->addReturnType('bool');
// Access the generator and it's code object to add the new method to it
$class->addMethod($method);
// Echo out the code
$code = new Generator($class);
$code->writeToFile('MyClass.php');
/**
* @namespace
*/
namespace MyApp;
class MyClass
{
/**
* @var string
*/
protected string|null $foo = null;
/**
* This is the method to set foo.
*
* @param string $foo
* @return void
*/
public function setFoo(string $foo): void
{
$this->foo = $foo;
}
/**
* This is the method to see if foo is set.
*
* @param string $foo
* @return bool
*/
public function hasFoo(string $foo): bool
{
return ($this->foo !== null);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.