我创建了一个简单的网站,前端使用Angular,后端API使用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 () {
});
};
}
苗条 - 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
对象的构造函数中。然后,您将拥有一致的规则,无论您在代码的哪个部分实例化对象。
例如,您可能需要检索附加到公司的所有作业。使用 Job
对象的数组比处理表行或二维数组要容易得多。
我还建议将您的属性定义为private
,并使用 setter 和 getter 来访问它们。