【问题标题】:include PHP script in laravel在 laravel 中包含 PHP 脚本
【发布时间】:2020-05-30 21:55:35
【问题描述】:

我有一个 PHP 脚本,我想将它包含在我的 laravel 应用程序中。所以我尝试构建一个控制器并将脚本放在上面。PHP 脚本的作用是从 csv 文件中获取数据并插入它在数据库中。但是当我运行它时注意到发生了。 所以这是我的 Job 等待控制器:

<?php

namespace App\Http\Controllers;
include(app_path() . '/config.php');
include(app_path() . '/CDM/entities/job_en_wait.php');
include(app_path() . '/CDM/core/job_en_waitC.php');

use App\job_en_wait;
use Illuminate\Http\Request;

class JobWaitController extends Controller
 {
 //
function dos(){

 $dir = app_path(). '/files/';

$scan = scandir($dir);

$file = fopen($dir.$scan[4], "r");

print_r($scan[4]);

echo "<br>";

$data = fgetcsv($file, 1000, ",");

while (($data = fgetcsv($file, 1000, ",")) !== FALSE)
{
    if ($data[0]!=";;;;;") {
      $liste=explode(";",$data[0]);
      //print_r($liste);

     $job_en_wait=new job_en_wait(0,$liste[0],$liste[1],$liste[2],$liste[3],$liste[4],$liste[5],$liste[6],$liste[7],$liste[8],$liste[9],$liste[10]);

      $job_en_waitController=new job_en_waitC();

      $job_en_waitController->afficherjob_en_wait($job_en_wait);
      $job_en_waitController->ajouterjob_en_wait($job_en_wait);
      //echo "<br>job_en_wait integré avec succes <br>";
    }

}

fclose($file);


  }
  }

这是job_waitC.php:

<?PHP

    class job_en_waitC {


    function afficherjob_en_wait ($job_en_wait){
    echo "id: ".$job_en_wait->getid()."<br>";
    echo "client: ".$job_en_wait->getclient()."<br>";
    echo "session: ".$job_en_wait->getsession()."<br>";
    echo "info_session: ".$job_en_wait->getinfo_session()."<br>";
    echo "UPROC: ".$job_en_wait->getUPROC()."<br>";
    echo "num_session: ".$job_en_wait->getnum_session()."<br>";
    echo "num_exec: ".$job_en_wait->getnum_exec()."<br>";

    echo "date_debut: ".$job_en_wait->getdate_debut()."<br>";
    $hd=date_create($job_en_wait->getheure_debut());
    echo "heure_debut :".date_format($hd,"g:i:s A")."<br>";

    echo "date_fin: ".$job_en_wait->getdate_fin()."<br>";
    $hf=date_create($job_en_wait->getheure_fin());
    echo "heure_fin :".date_format($hf,"g:i:s A")."<br>";
    echo "status: ".$job_en_wait->getstatus()."<br>";

   }

   function ajouterjob_en_wait($job_en_wait){
    $date_debut=$job_en_wait->getdate_debut();
    $date_fin=$job_en_wait->getdate_fin();

    /*$heure_debut=date_create($job_en_wait->getheure_debut());
    $final_heure_debut=date_format($heure_debut,"m/d/Y H:i:s");

    $heure_fin=date_create($job_en_wait->getheure_fin());
    $final_fin_debut=date_format($heure_fin,"m/d/Y H:i:s");*/
    $heure_debut=$job_en_wait->getheure_debut();
    $heure_fin=$job_en_wait->getheure_fin();
    //echo "job_en_wait->getheure_fin ".$job_en_wait->getheure_fin();
    $sql="INSERT into job_en_wait (client,session,info_session,UPROC,num_session,num_exec,date_debut,heure_debut,date_fin,heure_fin,status)
     values (:client,:session,:info_session,:UPROC,:num_session,:num_exec,STR_TO_DATE('$date_debut','%d/%m/%Y'),STR_TO_DATE('05/12/2020 $heure_debut','%d/%m/%Y %H:%i:%s'),STR_TO_DATE('$date_fin','%d/%m/%Y'),STR_TO_DATE('05/12/2020 $heure_fin','%d/%m/%Y %H:%i:%s'),:status)";
    //echo "request :".$sql."<br>";
    $db = config::getConnexion();
    try{
    $req=$db->prepare($sql);

    $client=$job_en_wait->getclient();
    $session=$job_en_wait->getsession();
    $info_session=$job_en_wait->getinfo_session();
    $UPROC=$job_en_wait->getUPROC();
    $num_session=$job_en_wait->getnum_session();
    $num_exec=$job_en_wait->getnum_exec();

    $date_debut=$job_en_wait->getdate_debut();
    $heure_debut=$job_en_wait->getheure_debut();
    $date_fin=$job_en_wait->getdate_fin();
    $heure_fin=$job_en_wait->getheure_fin();

    $status=$job_en_wait->getstatus();


    $req->bindValue(':client',$client);
    $req->bindValue(':session',$session);
    $req->bindValue(':info_session',$info_session);
    $req->bindValue(':UPROC',$UPROC);
    $req->bindValue(':num_session',$num_session);
    $req->bindValue(':num_exec',$num_exec);

    $req->bindValue(':status',$status);

        $req->execute();

    }
    catch (Exception $e){
        echo 'Erreur exec erreur: '.$e->getMessage();
    }

}

function afficherjobs_en_wait(){
    //$sql="SElECT * From job_en_wait e inner join formationphp.job_en_wait a on e.cin= a.cin";
    $sql="SElECT * From job_en_wait";
    $db = config::getConnexion();
    try{
    $liste=$db->query($sql);
    return $liste;
    }
    catch (Exception $e){
        die('Erreur: '.$e->getMessage());
    }
}


} 

?>

这是job_en_wait.php:

<?PHP
class job_en_wait{

private $id;
private $client;
private $session;
private $info_session;
private $UPROC;
private $num_session;
private $num_exec;
private $date_debut;
private $heure_debut;
private $date_fin;
private $heure_fin;
private $status;

function __construct($id,$client,$session,$info_session,$UPROC,$num_session,$num_exec,$date_debut,$heure_debut,$date_fin,$heure_fin,$status){
$this->id=$id;
$this->client=$client;
$this->session=$session;
$this->info_session=$info_session;
$this->UPROC=$UPROC;
$this->num_session=$num_session;
$this->num_exec=$num_exec;
$this->date_debut=$date_debut;
$this->heure_debut=$heure_debut;
$this->date_fin=$date_fin;
$this->heure_fin=$heure_fin;
$this->status=$status;
}
function getid(){
    return $this->id;
}
function getclient(){
    return $this->client;
}
function getsession(){
    return $this->session;
}
function getinfo_session(){
    return $this->info_session;
}
function getUPROC(){
    return $this->UPROC;
}
function getnum_session(){
    return $this->num_session;
}
function getnum_exec(){
    return $this->num_exec;
}
function getdate_debut(){
    return $this->date_debut;
}
function getheure_debut(){
    return $this->heure_debut;
}
function getdate_fin(){
    return $this->date_fin;
}
function getheure_fin(){
    return $this->heure_fin;
}
function getstatus(){
    return $this->status;
}



function setclient($client){
    $this->client=$client;
}

function setsession($session){
    $this->session=$session;
}


function setinfo_session($info_session){
    $this->info_session=$info_session;
}

function setUPROC($UPROC){
    $this->UPROC=$UPROC;
}

function setnum_session($num_session){
    $this->num_session=$num_session;
}

function setnum_exec($num_exec){
    $this->num_exec=$num_exec;
}


function setdate_debut($date_debut){
    $this->date_debut=$date_debut;
}

function setheure_debut($heure_debut){
    $this->heure_debut=$heure_debut;
}

function setdate_fin($date_fin){
    $this->date_fin=$date_fin;
  }

    function setheure_fin($heure_fin){
    $this->heure_fin=$heure_fin;
   }


   function setstatus($status){
    $this->status=$status;
  }




   }

   ?>

【问题讨论】:

  • 1.在 Laravel 中使用自动加载是很常见的,不要使用包含。 2. 你不应该做回声。 3. 您的文件名、缩进或函数名不符合任何标准。 4. 你在使用很多老式的 PHP 函数,使用 Laravel 组件,如存储等。
  • when i run it noting happen - 你如何运行它?您的 Web 服务器、PHP 和 Laravel 日志显示什么?您是否进行了一些基本调试,例如它是否达到了您的dos() 方法?
  • @Don'tPanic 成功到达 dos() 方法,但没有在数据库中插入任何内容

标签: php laravel laravel-6


【解决方案1】:

这违反了 PSR 约定。有一种更清洁的方法可以做到这一点。 您在应用程序中犯了一些代码约定错误。

  1. 您应该遵循命名空间的 PSR 命名: https://www.php-fig.org/psr/psr-2/
  2. 您应该创建一个单独的配置文件。所以在你的 laravel 配置中 文件夹,您应该创建一个可通过以下方式访问的配置文件 config() 函数。

这样的例子是: 1)在 /app/Models 中创建一个文件夹 2)把JobWait作为一个laravel模型(你不需要做所有的sql,你应该使用雄辩的 指定 JobWait 的命名空间为“use App/Models;”

我完全建议将您正在使用的 JobWait 类转换为 Laravel 模型。 https://www.youtube.com/watch?v=zpVE5RfcuTQ

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-06
    • 2018-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    相关资源
    最近更新 更多