137748cd8SNickeau<?php 237748cd8SNickeau/** 337748cd8SNickeau * Copyright (c) 2021. ComboStrap, Inc. and its affiliates. All Rights Reserved. 437748cd8SNickeau * 537748cd8SNickeau * This source code is licensed under the GPL license found in the 637748cd8SNickeau * COPYING file in the root directory of this source tree. 737748cd8SNickeau * 837748cd8SNickeau * @license GPL 3 (https://www.gnu.org/licenses/gpl-3.0.en.html) 937748cd8SNickeau * @author ComboStrap <support@combostrap.com> 1037748cd8SNickeau * 1137748cd8SNickeau */ 1237748cd8SNickeau 1337748cd8SNickeaunamespace ComboStrap; 1437748cd8SNickeau 1537748cd8SNickeau 16*c3437056SNickeauuse DateTime; 17*c3437056SNickeau 18*c3437056SNickeau/** 19*c3437056SNickeau * Class File 20*c3437056SNickeau * @package ComboStrap 21*c3437056SNickeau * @deprecated for {@link LocalPath} and {@link FileSystems} 22*c3437056SNickeau */ 2337748cd8SNickeauclass File 2437748cd8SNickeau{ 2537748cd8SNickeau 261fa8c418SNickeau protected $path; 2737748cd8SNickeau 2837748cd8SNickeau 2937748cd8SNickeau /** 3037748cd8SNickeau * File constructor. 3137748cd8SNickeau * @param $absolutePath 3237748cd8SNickeau */ 3337748cd8SNickeau protected function __construct($absolutePath) 3437748cd8SNickeau { 3537748cd8SNickeau $this->path = $absolutePath; 3637748cd8SNickeau } 3737748cd8SNickeau 3837748cd8SNickeau /** 39*c3437056SNickeau * @deprecated uses {@link Path::toAbsolutePath()} instead 4037748cd8SNickeau * @return mixed 4137748cd8SNickeau */ 42*c3437056SNickeau public function getAbsoluteFileSystemPath() 4337748cd8SNickeau { 4437748cd8SNickeau return $this->path; 4537748cd8SNickeau } 4637748cd8SNickeau 4737748cd8SNickeau /** 48*c3437056SNickeau * @deprecated use {@link FileSystems::getSize()} instead 4937748cd8SNickeau * @return false|int 5037748cd8SNickeau */ 5137748cd8SNickeau public function getSize() 5237748cd8SNickeau { 5337748cd8SNickeau return filesize($this->path); 5437748cd8SNickeau } 5537748cd8SNickeau 56*c3437056SNickeau /** 57*c3437056SNickeau * @return bool 58*c3437056SNickeau * @deprecated uses {@link FileSystems::exists()} instead 59*c3437056SNickeau */ 6037748cd8SNickeau public function exists() 6137748cd8SNickeau { 6237748cd8SNickeau return file_exists($this->path); 6337748cd8SNickeau } 6437748cd8SNickeau 6537748cd8SNickeau public function __toString() 6637748cd8SNickeau { 6737748cd8SNickeau return $this->path; 6837748cd8SNickeau } 6937748cd8SNickeau 7037748cd8SNickeau /** 71*c3437056SNickeau * @return null|DateTime - The date time 72*c3437056SNickeau * @deprecated use {@link FileSystems::getModifiedTime()} instead 7337748cd8SNickeau */ 74*c3437056SNickeau public function getModifiedTime(): ?DateTime 7537748cd8SNickeau { 76*c3437056SNickeau if(!$this->exists()){ 77*c3437056SNickeau return null; 78*c3437056SNickeau } 791fa8c418SNickeau return Iso8601Date::createFromTimestamp(filemtime($this->path))->getDateTime(); 8037748cd8SNickeau } 8137748cd8SNickeau 8237748cd8SNickeau 8337748cd8SNickeau 8437748cd8SNickeau 8537748cd8SNickeau /** 86*c3437056SNickeau * @deprecated use {@link FileSystems::getContent()} instead 87*c3437056SNickeau * @return false|string 8837748cd8SNickeau */ 89*c3437056SNickeau public function getTextContent() 9037748cd8SNickeau { 91*c3437056SNickeau return file_get_contents($this->getAbsoluteFileSystemPath()); 9237748cd8SNickeau } 9337748cd8SNickeau 941fa8c418SNickeau /** 95*c3437056SNickeau * @deprecated use {@link FileSystems::delete()} instead 961fa8c418SNickeau */ 9737748cd8SNickeau public function remove() 9837748cd8SNickeau { 99*c3437056SNickeau unlink($this->getAbsoluteFileSystemPath()); 10037748cd8SNickeau } 10137748cd8SNickeau 102*c3437056SNickeau /** 103*c3437056SNickeau * @return File|null 104*c3437056SNickeau * @deprecated use {@link LocalPath::getParent()} instead 105*c3437056SNickeau */ 106*c3437056SNickeau public function getParent(): ?File 10737748cd8SNickeau { 108*c3437056SNickeau $absolutePath = pathinfo($this->path, PATHINFO_DIRNAME); 109*c3437056SNickeau if(empty($absolutePath)){ 110*c3437056SNickeau return null; 111*c3437056SNickeau } 112*c3437056SNickeau return new File($absolutePath); 11337748cd8SNickeau } 11437748cd8SNickeau 115*c3437056SNickeau public function createAsDirectory(): bool 11637748cd8SNickeau { 11737748cd8SNickeau 118*c3437056SNickeau return mkdir($this->getAbsoluteFileSystemPath(), $mode = 0770, $recursive = true); 11937748cd8SNickeau } 12037748cd8SNickeau 121*c3437056SNickeau public static function createFromPath($path): File 12237748cd8SNickeau { 12337748cd8SNickeau return new File($path); 12437748cd8SNickeau 12537748cd8SNickeau } 12637748cd8SNickeau 127*c3437056SNickeau /** 128*c3437056SNickeau * @deprecated for {@link ResourceCombo::getBuster()} 129*c3437056SNickeau * @return string 130*c3437056SNickeau */ 131*c3437056SNickeau public function getBuster(): string 132*c3437056SNickeau { 133*c3437056SNickeau return strval($this->getModifiedTime()->getTimestamp()); 134*c3437056SNickeau } 13537748cd8SNickeau 136*c3437056SNickeau /** 137*c3437056SNickeau * @deprecated uses {@link FileSystems::getCreationTime()} instead 138*c3437056SNickeau * @return DateTime|false|mixed 139*c3437056SNickeau */ 140*c3437056SNickeau public function getCreationTime() 141*c3437056SNickeau { 142*c3437056SNickeau return Iso8601Date::createFromTimestamp(filectime($this->path))->getDateTime(); 143*c3437056SNickeau } 14437748cd8SNickeau 145*c3437056SNickeau /** 146*c3437056SNickeau * @deprecated use {@link FileSystems::deleteIfExists()} instead 147*c3437056SNickeau */ 148*c3437056SNickeau public function removeIfExists(): File 149*c3437056SNickeau { 150*c3437056SNickeau if($this->exists()){ 151*c3437056SNickeau $this->remove(); 152*c3437056SNickeau } 153*c3437056SNickeau return $this; 154*c3437056SNickeau } 15537748cd8SNickeau 15637748cd8SNickeau 15737748cd8SNickeau} 158