Server : nginx/1.20.2 System : Linux VM-4-4-centos 3.10.0-1160.66.1.el7.x86_64 #1 SMP Wed May 18 16:02:34 UTC 2022 x86_64 User : www ( 1000) PHP Version : 5.6.40 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv Directory : /www/wwwroot/greatapp.cn/vendor/topthink/think-migration/phinx/src/Phinx/Seed/ |
<?php /** * Phinx * * (The MIT license) * Copyright (c) 2015 Rob Morgan * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated * documentation files (the "Software"), to * deal in the Software without restriction, including without limitation the * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. * * @package Phinx * @subpackage Phinx\Seed */ namespace Phinx\Seed; use Phinx\Db\Table; use Phinx\Db\Adapter\AdapterInterface; use think\console\Input as InputInterface; use think\console\Output as OutputInterface; /** * Abstract Seed Class. * * It is expected that the seeds you write extend from this class. * * This abstract class proxies the various database methods to your specified * adapter. * * @author Rob Morgan <robbym@gmail.com> */ abstract class AbstractSeed implements SeedInterface { /** * @var AdapterInterface */ protected $adapter; /** * @var InputInterface */ protected $input; /** * @var OutputInterface */ protected $output; /** * Class Constructor. * * @param InputInterface $input * @param OutputInterface $output */ final public function __construct(InputInterface $input = null, OutputInterface $output = null) { if (!is_null($input)){ $this->setInput($input); } if (!is_null($output)){ $this->setOutput($output); } $this->init(); } /** * Initialize method. * * @return void */ protected function init() { } /** * {@inheritdoc} */ public function run() { } /** * {@inheritdoc} */ public function setAdapter(AdapterInterface $adapter) { $this->adapter = $adapter; return $this; } /** * {@inheritdoc} */ public function getAdapter() { return $this->adapter; } /** * {@inheritdoc} */ public function setInput(InputInterface $input) { $this->input = $input; return $this; } /** * {@inheritdoc} */ public function getInput() { return $this->input; } /** * {@inheritdoc} */ public function setOutput(OutputInterface $output) { $this->output = $output; return $this; } /** * {@inheritdoc} */ public function getOutput() { return $this->output; } /** * {@inheritdoc} */ public function getName() { return get_class($this); } /** * {@inheritdoc} */ public function execute($sql) { return $this->getAdapter()->execute($sql); } /** * {@inheritdoc} */ public function query($sql) { return $this->getAdapter()->query($sql); } /** * {@inheritdoc} */ public function fetchRow($sql) { return $this->getAdapter()->fetchRow($sql); } /** * {@inheritdoc} */ public function fetchAll($sql) { return $this->getAdapter()->fetchAll($sql); } /** * {@inheritdoc} */ public function insert($table, $data) { // convert to table object if (is_string($table)) { $table = new Table($table, array(), $this->getAdapter()); } return $table->insert($data)->save(); } /** * {@inheritdoc} */ public function hasTable($tableName) { return $this->getAdapter()->hasTable($tableName); } /** * {@inheritdoc} */ public function table($tableName, $options = array()) { return new Table($tableName, $options, $this->getAdapter()); } }