Php 我应该向RESTful API添加类吗?为什么?

Php 我应该向RESTful API添加类吗?为什么?,php,angularjs,class,oop,Php,Angularjs,Class,Oop,我创建了一个简单的网站,前端使用Angular,后端使用Slim。我想知道类如何改进/阻碍API 示例类 class Job { public $title; public $company; public $location; public function __construct($title = '', $company = '', $location = '') { $this->title = $title; $t

我创建了一个简单的网站,前端使用Angular,后端使用Slim。我想知道类如何改进/阻碍API

示例类

class Job {
    public $title;
    public $company;
    public $location;

    public function __construct($title = '', $company = '', $location = '') {
        $this->title = $title;
        $this->company= $company;
        $this->location = $location;
    }
}
下面的代码工作正常,但我想知道是否应该向API添加类,为什么?换句话说,这门课将如何发挥作用

角度-路由+控制器

function config($routeProvider) {
    $routeProvider.when('/add-job', {
        templateUrl: 'templates/add-job.view.html',
        controller: AddController,
        controllerAs: 'addCtrl'
    });
};

function AddController($http) {
    var that = this;

    that.add_new = function (job) {
        $http.post('api/add_job', that.job).success(function () {
        });
    };
}
Slim-PHP服务

require 'vendor/autoload.php';

$app = new \Slim\App; 

$app->post('/add_job', 'addJob');

$app->run();

function addJob($request) {
    $job = json_decode($request->getBody());
    $sql = "INSERT INTO jobs (title, company, location) VALUES (:title, :company, :location)";
    try {
        $db = getConnection();
        $stmt = $db->prepare($sql);  
        $stmt->bindParam("title", $job->title);
        $stmt->bindParam("company", $job->company);
        $stmt->bindParam("location", $job->location);
        $stmt->execute();
        $job->id = $db->lastInsertId();
        $db = null;
    } catch(PDOException $e) {
    echo '{"error":{"text":'. $e->getMessage() .'}}'; 
    }
}

OOP将帮助您标准化数据

在您提供的示例中,好处可能并不明显。但是,将来可能需要对参数进行一些检查。这些将最好地放置在
作业
对象的构造函数中。然后,无论在代码的哪个部分实例化对象,您都将拥有一致的规则

例如,您可能需要检索附加到公司的所有作业。使用
Job
对象数组将比使用表行或二维数组容易得多


我还建议将您的属性定义为
private
,并使用setter和getter访问它们。

对工作代码的分析和改进已在上完成,此站点仅适用于损坏的代码。@miken32不,堆栈溢出不仅仅适用于损坏的代码。工作代码可以位于堆栈溢出主题上。要么投票决定过于宽泛,主要是基于意见,要么让它保持开放。