| Conditions | 2 | 
| Paths | 2 | 
| Total Lines | 22 | 
| Code Lines | 14 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Tests | 16 | 
| CRAP Score | 2 | 
| Changes | 0 | ||
| 1 | <?php  | 
            ||
| 12 | 11 | public function __construct($root)  | 
            |
| 13 |     {
 | 
            ||
| 14 | 11 | $this->startTime = microtime(1);  | 
            |
| 15 | 11 | $this->container = new Container;  | 
            |
| 
                                                                                                    
                        
                         | 
                |||
| 16 | |||
| 17 | 11 | $fs = new Filesystem($this, $root);  | 
            |
| 18 | |||
| 19 | 11 | $this->container->share(Container::class, $this->container);  | 
            |
| 20 | 11 | $this->container->share(Application::class, $this);  | 
            |
| 21 | 11 | $this->container->share(Filesystem::class, $fs);  | 
            |
| 22 | 11 | $this->container->share(Framework::class, new Framework($this));  | 
            |
| 23 | |||
| 24 | 11 | $this->container->addServiceProvider(Providers\Core::class);  | 
            |
| 25 | 11 | $this->container->addServiceProvider(Providers\Logging::class);  | 
            |
| 26 | 11 | $this->container->addServiceProvider(Providers\Tarantool::class);  | 
            |
| 27 | |||
| 28 | 11 |         foreach($fs->listClasses('Providers') as $provider) {
 | 
            |
| 29 | 11 | $this->container->addServiceProvider($provider);  | 
            |
| 30 | 11 | }  | 
            |
| 31 | |||
| 32 | 11 | $this->container->delegate(new ReflectionContainer());  | 
            |
| 33 | 11 | }  | 
            |
| 34 | |||
| 49 | }  | 
            
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: