Nasıl OO PHP kod?

2 Cevap php

Nasıl OO PHP yapabilirsiniz:

  1. A formu ('newstudent.php in') ismi, ders ve yıl girmek için kullanıcıya sorar.
  2. After selecting 'Submit' button, the page will go to 'records.php' records.php - contains a table that displays all the records (columns: name, course, year)
  3. kullanıcı 'Gönder' seçtiğinde, yeni rekor adlı bir tablo ÖĞRENCİ sahip veritabanına eklenecek

SQL kodu

CREATE TABLE STUDENTS(
   NAME VARCHAR(25) NOT NULL,
   COURSE VARCHAR(25) NOT NULL,
   YEAR INT NOT NULL,
CONSTRAINT STUDENTS_PK PRIMARY KEY(NAME));

* I birincil anahtar olarak adını kullanmak doğru değil biliyorum birincil anahtar coz umursamıyorum lütfen. Bu sadece exmple amaçlıdır.

and also...How can i manipulate data in DB using OO PHP? Thanks

2 Cevap

Eh, bir veritabanı, öğrencileri temsil eden bir OO yöntemine geçmek isterseniz nasıl (bu herhangi bir şekilde tam bir ORM çok temel, ve olmasa da) aşağıda tanımı şöyle bir 'Öğrenci' sınıfı hakkında. Bir ActiveRecord yaklaşım tarzı yarım götürür.

Ben bir tamsayı id sütunu, yapmıyor yani bütün sınıf can sıkıcı yapan kullanacağı varsayılmaktadır unutmayın.

class Student {

   var $id = -1;
   var $name;
   var $course;
   var $year; 

   public static function newFromID ($id) 
   {
     //fetch a row ($row) from the students table matching the given id
     //perhaps returning false if the student doesn't exist?
     return self::newFromRow($row);
   }

   // this method should return a new student object given a specific db row
   // and should be called from newFromID.  This function means that if the table
   // changes, modifications only have to be made in one place
   public static function newFromRow($row) 
   {
     $obj = new Student();

     //fill in the fields of the object based on the content of the row

     return $obj;
   }

   public static function getAllStudents()
   {
     //perhaps return an array of student objects, by doing a broad select,
     //and passing each row to newFromRow?
   }

   //this should save the object to the database, either inserting or updating as appropriate
   public function save()
   {
     if($this->id == -1) 
     {
        //insert, store the auto_increment id in $this->id
     } else {
        //update
     }

   }

}

Yani, yeni bir öğrenci oluşturmak ve veritabanına kaydetmek için:

$student = new Student();

$student->name = "John Smith";
$student->course = "French";
$student->year = 2;

$student->save();

Gerçekte, mevcut bir ORM sistemi kullanmak için genellikle daha mantıklı olduğunu, ancak bu bir seçenek değilse, kendi yazmayı düşünebilirsiniz.

Belki ORM hakkında konuşmak - Nesne İlişkileri Haritalama desenleri? Propel, Doktrin (iki Symfony çerçeve ile kullanılabilir), ActiveRecord: PHP sınıfları SQL veri nesneleri eşleştirilir almak için birçok farklı yaklaşım vardır.

Tabii ki, kendi ORM sistemi uygulamak için deneyebilirsiniz. Sen, bu ORM için SQL tabloları ve diğer birçok şeyler anlatır sınıflar veri erişim katmanı yazmak gerekir. Bu (eğitim amaçlı) çok ilginç.