PHP Classes

File: phptricksORM/Command/CommandHelpers.php

Recommend this page to a friend!
  Classes of mohammad anzawi   PHP PDO database class   phptricksORM/Command/CommandHelpers.php   Download  
File: phptricksORM/Command/CommandHelpers.php
Role: Class source
Content type: text/plain
Description: Class source
Class: PHP PDO database class
Access databases using PDO
Author: By
Last change:
Date: 3 years ago
Size: 2,563 bytes
 

Contents

Class file image Download
<?php
/**
 * *
 * * please don't remove this comment block
 * *
 * * @author phptricks Team - Mohammad Anzawi
 * * @author_uri https://phptricks.org
 * * @uri https://github.com/anzawi/php-database-class
 * * @version 5.0.0
 * * @licence MIT -> https://opensource.org/licenses/MIT
 * * @package PHPtricks\Orm
 *
 */

namespace PHPtricks\Orm\Command;

class
CommandHelpers
{

   
/**
     * @var
     */
   
private $_dir;
   
/**
     * the file name
     *
     * @var string
     */
   
private $_fileName = 'migrated.json';

   
/**
     * CommandHelpers constructor.
     */
   
public function __construct()
    {
       
$this->_dir = config('directories.migrated-file').$this->_fileName;
    }

   
/**
     * we want to mark migrated classes ,In order not to be migrate again
     * this helper function write in migrated.json file.
     *
     * @param $migrationClassName
     */
   
public function setMigrationAsMigrated($migrationClassName): void
   
{
        if ( !
file_exists($this->_dir)) {
           
$this->createFile();
        }

       
$migrated = $this->getFileContent();
       
$migrated[$migrationClassName] = true;
       
$migrated = json_encode($migrated);
       
file_put_contents($this->_dir, $migrated);
    }

   
/**
     * Generate migrated.json file
     */
   
private function createFile(): void
   
{
        @
mkdir(dirname($this->_dir), 0755, true);
       
file_put_contents($this->_dir, '{}');
    }

   
/**
     * get migrated.json content
     *
     * @return array
     */
   
private function getFileContent(): array
    {
        @
$migrated = file_get_contents($this->_dir);

        return
json_decode($migrated, true);
    }

   
/**
     * check if class migrated or not
     *
     * @param $migrationClassName
     *
     * @return bool
     */
   
public function isMigrated($migrationClassName): bool
   
{
        if ( !
file_exists($this->_dir)) {
            return
false;
        }

       
$migrated = $this->getFileContent();

        return isset(
$migrated[$migrationClassName]);
    }

   
/**
     * delete migrated.json file
     * @param bool $delete
     */
   
public function clear(bool $delete = false): void
   
{
       
$path = config('directories.migrated-file');

        if (
$delete) {
            if (
is_dir($path)) {
               
unlink($path);
            }
        }
        if ( !
$delete) {
            if (
file_exists($this->_dir)) {
               
file_put_contents($this->_dir, '{}');
            }
        }
    }

}