Compare commits

...

7 Commits

Author SHA1 Message Date
Simon Wisselink 5de6092a56 added changelog 2024-05-24 00:15:02 +02:00
Scott Baker 32c8339492 Some fixes per Wisskid in the PR 2024-05-15 08:45:01 -07:00
Scott Baker 2042979701 Update example docs to point at libs/ 2024-05-15 08:14:21 -07:00
Scott Baker d0270fb8ea Move to /libs/ 2024-05-15 08:11:01 -07:00
Scott Baker 39db8ce64f Correct a path in the example 2024-05-14 12:28:56 -07:00
Scott Baker 11cc46c942 Add standalone instantiation documentation 2024-05-14 12:23:52 -07:00
Scott Baker d974bde2c4 Add a PSR-4 loading script to allow Smarty to be used without Composer
Fix a directory path
2024-05-14 12:09:25 -07:00
3 changed files with 51 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
- Added a PSR-4 loading script to allow Smarty to be used without Composer [#1017](https://github.com/smarty-php/smarty/pull/1017)
+8
View File
@@ -25,9 +25,17 @@ Here's how you create an instance of Smarty in your PHP scripts:
```php
<?php
// Instantiated via composer
require 'vendor/autoload.php';
use Smarty\Smarty;
$smarty = new Smarty();
// or ...
// Instantiated directly
require("/path/to/smarty/libs/Smarty.class.php");
use Smarty\Smarty;
$smarty = new Smarty();
```
Now that the library files are in place, it's time to set up the Smarty
+42
View File
@@ -0,0 +1,42 @@
<?php
/////////////////////////////////////////////////////////////////////
// This is a stub PSR-4 loading script that gets all the pieces of //
// Smarty 5.x loaded without requiring the use of composer. It's //
// not really a 'class' file, but the name is used so we're //
// backwards compatible with previous versions of Smarty. //
// //
// Example: //
// require_once("/path/to/smarty/libs/Smarty.class.php"); //
// //
// $smarty = new Smarty\Smarty; //
// $smarty->testInstall(); //
/////////////////////////////////////////////////////////////////////
define('__SMARTY_DIR', __DIR__ . '/../src/');
// Global function declarations
require_once(__SMARTY_DIR . "/functions.php");
spl_autoload_register(function ($class) {
// Class prefix
$prefix = 'Smarty\\';
// Does the class use the namespace prefix?
$len = strlen($prefix);
if (strncmp($prefix, $class, $len) !== 0) {
// If not, move to the next registered autoloader
return;
}
// Hack off the prefix part
$relative_class = substr($class, $len);
// Build a path to the include file
$file = __SMARTY_DIR . str_replace('\\', '/', $relative_class) . '.php';
// If the file exists, require it
if (file_exists($file)) {
require_once($file);
}
});