2016-03-29 11 views
0

これは、ajax呼び出しを使用したPHP mvcパターンに関する奇妙な質問です。目的は、より良い、動的にWebアプリケーションを作ることです。私はあなたを説明しましょう:私はPHPを学ぶときAJAX呼び出しのMVCパターン

が、私は特にこのパターンを使用:

model.php

<?php 
class myClass { 

    private $attrOne; 
    private $attrTwo; 

    public function getAttrOne() { 
     return $this->attrOne; 
    } 

    public function setAttrOne($attrOne) { 
     $this->attrOne = $attrOne; 
    } 

    public function getAttrTwo() { 
     return $this->attrTwo; 
    } 

    public function setAttrTwo($attrTwo) { 
     $this->attrTwo = $attrTwo; 
    } 

    // ---------------------------------------------------- 

    public function doSelect() { 
     //some code 
    } 

    public function doInsert() { 
     //some code 
    } 

    public function doUpdate() { 
     //some code 
    } 

    public function doDelete() { 
     //some code 
    } 

} 

controller.php

<?php 

require "../models/model.php"; 

if(isset($_POST['action'])) { 
    $action = $_POST['action']; 
    if(is_callable($action)) { 
     $action(); 
    } 
} 

function registerSomething(){ 
    $model = new myClass(); 
    $model->setAttrOne($_POST['attrOne']); 
    $model->setAttrTwo($_POST['attrTwo']); 
    $return = $model->doInsert(); 
    echo $return; 
} 

function registerSomething2(){ 
    // more app logic code and other stuff 
} 

view.php - >これをphpの拡張子を持つ最も純粋なhtmlファイルです

<div id="result"></div> 
<form id="register" role="form" > 
    <input type="text" id="attrOne" name="attrOne"/> 
    <input type="text" id="attrTwo" name="attrTwo"/> 
</form> 

<script src="script.js" type="text/javascript"></script> 

のでscript.JS

$('#register').submit(function() { 
    var action = 'registerSomething'; 
    $.ajax({ 
    data: $(this).serialize() + '&action='+action, 
    url: '../controlllers/controller.php', 
    type: 'POST', 
    success: function(response) { 
      $('#result').html(response); 
     } 
    }) 
    return false; 
}) 

、あなたはこのパターンについてどう思いますか?このパターンは効率的ですか? phpの適切なmvcパターンでajax呼び出しを行う最善の方法は何ですか? これはベストプラクティスですか?

+0

はあなたを持って

  • オートローディングとPSR4
  • 違い
  • アクティブなレコードとデータマッパーパターン間の要求の抽象化をルーティングCakePHPを試しましたか?見ていると私はそれがあなたのためのより快適になると確信しています –

  • +1

    @FahedAlkaabiどのようにCakePHPは何に関連するのだろうか?それは古いものですね。 –

    +0

    @FahedAlkaabi私は、Joomla for PHP MVCを見に行くと思います。 – Killrawr

    答えて

    5

    MVCのようなものを具体的に実装することが目標だったら、まったく失敗しました。この設定は、MVCとはまったく関係ありません。正直言って、あなたはそのようなことに取り組むにはあまりにも経験の浅すぎるようです。

    これがコードにSeparation of Concernsを適用する最初の試みである場合は、適切です。しかし、私はまだこの種のコードを生産に入れないでしょう。

    あなたのお勧めは:今のところMVCをやめようとするのを止めて、ウェブ開発の一般的な理解を向上させることに集中してください。

    あなたは、PHPのために、次のトピックをグーグルする必要があります

    • URLを
    関連する問題