My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for

Nederlands, English, Русский, Deutsche, French, Italiano, Türkçe, Nederlandse


phpDays - flexibele php5 kader gebaseerd op de MVC en ORM design patterns.

Begin Nu

  • About het project (kenmerken)
  • Changelog (veranderingen tussen project-versies)
  • Install het kader op uw server en vervolgens configureren van een nieuw project
  • Upgrade een aanvraag van een vorige versie
  • Snel start voor je eerste applicaties als ze draaien
  • Antwoord Antwoord op u vragen
  • Alle pagina's in het Engels

Elke dag gebruik

  • MVC - Basisbegrippen die nodig zijn om te werken met het kader
  • Library klasse referentie beschrijvingen
  • Ajax ondersteuning in uw toepassingen
  • Multisite - beheren van veel sites in framework

Voor projectleden

NlIdea  
Ideeën voor verbetering van het project..
Updated Jan 2, 2010 by janversl...@gmail.com

Op deze pagina hebben we nieuwe ideeën te bespreken voor phpDays. Plaats uw ideeën hieronder in opmerkingen.

Modellen met controle van de gegevens

Ik ben het leren van de Python taal en haar Django kader. Ik ben ook leren over de Google! AppEngine .

Ik vind modellen zeer leuk. Wij creëren geen een database en geen beschrijving van een database in bestanden. Wij creëren model klassen met veld-beschrijvingen. Bij de lancering, onze applicatie genereert een database structuur en dat wordt vervolgens weer gebruikt. Dus het is zeer eenvoudig te gebruiken!

Bijvoorbeeld, het creëren van een model klasse (Kijk voor voorbeelden):

class Model_Blog extends Days_Model {
    protected $_name    = 'type: String, min: 2, max: 100, required';
    protected $_url     = 'type: String, min: 2, max: 100, required';
    protected $_owner   = 'type: User, required';
    protected $_created = 'type: DateTime, now: create, required';
    protected $_changed = 'type: DateTime, now: always, required';
}

/** Create new model based on Days base model */
class Model_User extends Days_Model_User {
    protected $_firstname = 'type: String, min: 2, max: 50';
    protected $_lastname  = 'type: String, min: 2, max: 50';
    protected $_birthdate = 'type: DateTime, min: 1950-1-1, required';
}

De basis klasse Days_Model implementeert uitvalsbasis voor verschillende soorten velden.

Ook de database structuur wordt gegenereerd uit dit bestand (met behulp van reflectie).

Hoe werkt het

Selecteer alle gebruikers, die reacties plaatsen vandaag in blog "Over leven":

$comments = new Model_BlogComment('created<=:1 AND created>=:2', '2009-12-12 23:59:59', '2009-12-12 00:00:00');
$blogs = new Model_Blog('name=:1', 'About life');
// create user object
$users = new Model_Users();
// add conditions from referenced models
$users->with($comments, $blogs);

// show all users
foreach ($users as $user) {
  echo "{$user->name} wrote today<br>";
}

Vind alle blog posts, waar de huidige gebruikers schrijven:

// find user by email
$user = new Model_Users('email=:1', 'Ilove@phpdays.org');
// find all blog comments wroted by current user
$comments = new Model_BlogComment('author=:1', $user);
// find blog posts
$blogPosts = new Model_BlogPost();
$blogPosts->with($comments);

// show all blog posts
foreach ($blogPosts as $blogPost) {
  echo "User {$user->name} wrote in blog post '{$blogPost->name}'<br>";
}

// find all blog posts, where current user is owner
// and wrote one or more comments in this post
$myBlogPosts = new Model_BlogPost();
$myBlogPosts->with($comments, $user);

Zoek alle reacties in blogs, eigendom van de gespecificeerde gebruikers alleen:

// find users by email
$users = new Model_Users('email=:1',
                         array(
                           'user1@phpdays.org',
                           'user2@phpdays.org',
                           'user3@phpdays.org'
                         ));
// find blogs, owned by users
$blogs = new Model_Blog('owner=:1', $users);
// find comments from this blogs
$comments = new Model_BlogComment('blog=:1', $blogs);

Ontwikkeling

Zie de code Days_Model class. Deze belangrijkste klasse voor de uitvoering van deze perfecte functionaliteit.

Alsjeblieft, help ons met het inplannen van deze maand. Deze is het belangrijkste voor onze eerste release phpDays 1.1.

If user use call witch(model1, model2, ...) - than into model processed:

  • Alle modellen worden opgeslagen in een array en waar alle modellen worden beschreven. Zodra dit bestand eenmaal is opgeslagen, worden er klasse gegenereerd.
  • Vindt alle Pathes van het huidige model naar alle gespecificeerde modellen.
  • Join alle modeltabellen en zet "waar" voorwaarden van modellen voorbij.
  • Voor vertegenwoordigen ROW nodig gebruik Days_Db_Row klasse (nodig om het te maken)
  • Uitvoeren verklaring en vul alle rijen voor huidige model alleen. Deze voeren alleen door eerste gesprek "get ()` (en equialent) methode voor Recive gegevens van model


Validator

Days_Validate - controleer of een variabele door criteria en terugkeer heeft gemaakt en een `echte waarde heeft.

$age = 21;
$mail = 'Tom@Jerry.com';
// not good format of criteria
if (Days_Validator::check($age, array('int'=>array('max'=>50, 'min'=>18))))
  echo 'You are full of strength!';
// good format of criteria
if (Days_Validator::check($age, 'int: {max: 50, min: 18}'))
  echo 'You are full of strength!';
// many criterias
if (Days_Validator::check($mail, 'str: {max: 70}, email, required'))
  echo 'Name correct!';

Tasks:

  • simplify a criteria format (good if data passes as string check($age, 'int: {max: 50, min: 18}') or similar format)


Event ( issue #15 )

Days_Event - een implementatie van de Observer patroon. Helpt join veel componenten op een systeem zonder wijzigingen in een component.

Days library events:

class Days_User {
  public function login($username, $password) {
    Days_Event::run('user.login.before');
    // process loginning
    if (/* logged well */) {
      Days_Event::run('user.login.success');
      ...
    }
    else {
      Days_Event::run('user.login.fail');
      ...
    }
    Days_Event::run('user.login.after');
  }
...

Jou appplicatie events zijn in de models (voeg de naam van uw aanvraag voor een evenement naam) :

class Myapp_Model_Rss {
  public function import($path) {
    Days_Event::run('myapp.rss.import.before');
    // process loginning
    if (/* data loaded from RSS */) {
      Days_Event::run('myapp.rss.import.success');
      ...
    }
    else {
      Days_Event::run('myapp.rss.import.fail');
      ...
    }
    Days_Event::run('myapp.rss.import.after');
  }
}

Nu hebben we een forum toe te voegen met een gebruiker toestemming aan de site. We gebruiken gebeurtenissen in het forum.

// general Days event
Days_Event::add('user.login.success', 'userSuccessLogged');
// function called on success logging
function userSuccessLogged() {
  echo 'You logged successfully on site!';
}
// your application event
Days_Event::add('myapp.rss.import.fail', 'rssNotLoaded');
// callback function
function rssNotLoaded() {
  echo 'RSS not loaded. Enter correct URL adress';
}

See: Kohana events, Zend Observer.


Form

Days_Form - proces HTML-formulieren. Als alle gegevens correct worden doorgegeven - dan is de uitvoering van een formulier handler.


Sign in to add a comment
Powered by Google Project Hosting