Code

< 40 %
40-60 %
> 60 %
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