1 | <?php |
||
2 | /******************************************************************** |
||
3 | * Created by: Marko Kungla @ OkramLabs on Aug 6, 2012 - 9:27:39 |
||
4 | * Contact: [email protected] - https://okramlabs.com |
||
5 | * @copyright: 2015 OkramLabs - https://okramlabs.com |
||
6 | * @license MIT |
||
7 | * |
||
8 | * Package name:libhowi-filesystem |
||
9 | * @category HOWI3 |
||
10 | * @package libhowi |
||
11 | * @subpackage filesystem |
||
12 | * |
||
13 | * Lang: PHP |
||
14 | * Encoding: UTF-8 |
||
15 | * File: FS.inc |
||
16 | * @link https:// |
||
17 | ******************************************************************** |
||
18 | * Contributors: |
||
19 | * @author Marko Kungla <[email protected]> |
||
20 | * Github: https://github.com/mkungla |
||
21 | ******************************************************************** |
||
22 | * Comments: |
||
23 | */ |
||
24 | namespace HOWI3\libhowi\Filesystem; |
||
25 | |||
26 | class FS |
||
27 | { |
||
28 | use \HOWI3\libhowi\Filesystem\Commons\TraitForResponse; |
||
29 | |||
30 | /** |
||
31 | * Initialize the filesystem |
||
32 | * |
||
33 | * @name $FS = FS::load( string $pathname | $ser_cwd_by_caller boolean true = false, PHP_VERSION_ID ); |
||
34 | * |
||
35 | * @param string|boolean $pathname|$ser_cwd_by_caller |
||
36 | * Optional: defaults to false. |
||
37 | * If path is supplied then that will be current working directory. |
||
38 | * If boolean true is supplied it will try to set current working directory as one |
||
39 | * containing current script where FS::load() was called. |
||
40 | * @return Filesystem Returns filesystem object. |
||
41 | */ |
||
42 | 731 | public static function load($ser_cwd_by_caller = false, $PHP_VERSION_ID = PHP_VERSION_ID) |
|
43 | { |
||
44 | 731 | if (! empty($ser_cwd_by_caller) && is_bool($ser_cwd_by_caller)) { |
|
45 | 3 | $backtrace = debug_backtrace( |
|
46 | 3 | defined("DEBUG_BACKTRACE_IGNORE_ARGS") ? DEBUG_BACKTRACE_IGNORE_ARGS : FALSE); |
|
47 | 3 | $cwd_caller = array_pop($backtrace); |
|
48 | 3 | $ser_cwd_by_caller = dirname($cwd_caller['file']); |
|
49 | 2 | } |
|
50 | /** |
||
51 | * Minimum version of PHP must be atleast 5.5.11 |
||
52 | */ |
||
53 | 731 | if ($PHP_VERSION_ID <= 50511) |
|
54 | 491 | return call_user_func( |
|
55 | 3 | function () { |
|
56 | 3 | $self = new self(); |
|
57 | 3 | $self->emergency(100); |
|
58 | 3 | return $self; |
|
59 | 3 | }); |
|
60 | |||
61 | 731 | $filesystem = $PHP_VERSION_ID >= 70000 ? 'HOWI3\libhowi\Filesystem\php7\Filesystem' : 'HOWI3\libhowi\Filesystem\php5\Filesystem'; |
|
62 | /** |
||
63 | * Load APP writen in PHP 7 flavor or |
||
64 | * Compatible PHP v5.4 > && < PHP v7 |
||
65 | */ |
||
66 | 731 | return new $filesystem($ser_cwd_by_caller); |
|
67 | } |
||
68 | } |
||
69 |