1. Go to this page and download the library: Download asmblah/php-code-shift 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/ */
asmblah / php-code-shift example snippets
use Asmblah\PhpCodeShift\CodeShift;
use Asmblah\PhpCodeShift\Shifter\Filter\FileFilter;
use Asmblah\PhpCodeShift\Shifter\Shift\Shift\FunctionHook\FunctionHookShiftSpec;
tring $string, int $offset, ?int $length = null) use ($originalSubstr) {
return '[substr<' . $originalSubstr($string, $offset, $length) . '>]';
};
}
),
new FileFilter(__DIR__ . '/substr_test.php')
);
// NB: substr(...) will be hooked by the shift defined inside runner.php.
$myResult = substr('my string', 1, 4) . ' and ' . substr('your string', 1, 2);
print $myResult;
use Asmblah\PhpCodeShift\CodeShift;
use Asmblah\PhpCodeShift\Shifter\Filter\FileFilter;
use Asmblah\PhpCodeShift\Shifter\Shift\Shift\ClassHook\ClassHookShiftSpec;
_test.php')
);
class MyClass
{
public function getIt(): string
{
return 'my original string';
}
}
class MyReplacementClass
{
public function getIt(): string
{
return 'my replacement string';
}
}
// NB: References to MyClass will be hooked by the shift defined inside runner.php.
$myObject = new MyClass;
print $myObject->getIt();
declare(strict_types=1);
namespace My\App;
use Asmblah\PhpCodeShift\CodeShift;
use Asmblah\PhpCodeShift\Shifter\Stream\Handler\AbstractStreamHandlerDecorator;
use Asmblah\PhpCodeShift\Shifter\Stream\Handler\Registration\RegistrantInterface;
use Asmblah\PhpCodeShift\Shifter\Stream\Handler\Registration\Registration;
use Asmblah\PhpCodeShift\Shifter\Stream\Handler\Registration\RegistrationInterface;
use Asmblah\PhpCodeShift\Shifter\Stream\Handler\StreamHandlerInterface;
use Asmblah\PhpCodeShift\Shifter\Stream\Native\StreamWrapperInterface;
use Asmblah\PhpCodeShift\Shifter\Stream\StreamWrapperManager;
// Usually, the $previousStreamHandler passed to this method will not be of use,
// instead the "current" stream handler should be used as that will become the previous one.
previousStreamHandler: $currentStreamHandler
);
}
}
$codeShift = new CodeShift();
$codeShift->install();
StreamWrapperManager::registerStreamHandler(new MyRegistrant());
touch('my_file.txt');
unlink('my_file.txt'); // Will print "Unlinking path: my_file.txt".
shell
$ composer
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.