logo

Prado - vytvorenie a testovanie jednoduchej aplikácie


Prado Prado je PHP 5 framework pracujúci na udalosťami-riadenej architektúre. Najnovšia verzia tohto PHP frameworku je 3.1.7 a priniesla opravu viac
ako 20 chýb a mnoho ďalších vylepšení.

Prado je PHP 5 framework pracujúci na udalosťami-riadenej architektúre. Najnovšia verzia tohto PHP frameworku je 3.1.7 a priniesla opravu viac ako 20 chýb a mnoho ďalších vylepšení. Adresár aplikácie napísanej vo frameworku Prado obsahuje špecifikačný súbor XML, HTML šablónu a triedu PHP. Prado komponenty sú prepojené do jedného celku, aby vytvorili väčšiu časť webovej aplikácie, alebo aj kompletnú stránku. Medzi silné vlastnosti tohto projektu patrí znovupoužitie väčšiny kódu.

prado

 

aplikácia

Ako prvé si vygenerujeme základ aplikácie pomocou dole uvedeného príkazu, ktorý nám vygeneruje samotný framework Prado.

prado terminal

         

          Ďalší krok je nastavenie spojenia s databázou a tieto nastavenia nájdeme v súbore pradocontact/protected/application.xml . Do sekcie moduls treba pridať modul na pripojenie k databáze. Nasledovný kód treba uložiť do súboru v sekcii moduls.

<?xml version="1.0" encoding="utf-8"?> 

<application id="pradocontact" mode="Debug">

<paths>

<using namespace="Application.database.*" />

</paths>

 

<!-- configurations for modules -->

<modules>

  <module id="db" class="System.Data.TDataSourceConfig">

<database ConnectionString="mysql:host=localhost;dbname=diplomovka"

username="root" password="tombo"/>

</module>

 <module class="System.Data.ActiveRecord.TActiveRecordConfig" ConnectionID="db" />

</modules>

<!-- configuration for available services -->

<services>

<service id="page" class="TPageService" DefaultPage="Home" />

</services>

</application>


      

                 Následne je potrebné vytvoriť súbor UsersRecord.php v adresári /protected/database. Tento súbor obsluhuje model tabuľky users. 

<?php

class UsersRecord extends TActiveRecord {

const TABLE='users';

public $id;

public $member_id;

public $name;

public $surname;

public $phone;

public $email;


 

public station function finder($className=__CLASS__){

  return parent::finder($className);

} }

?>

        

               Na obsluhu modelu je potrebné vytvoriť súbor pre controller a to bude súbor home.php, ktorý je umiestnený v adresári /protected/pages/. 

<?php

class Home extends TPage {

public function onInit($param) {

parent::onInit($param);

// fetches all data account information

$this->UserGrid->DataSource=UsersRecord::finder()->findAll();

  // binds the data to interface components

                      $this->UserGrid->dataBind();  

            }  

} ?>

 

                  Aby boli tieto požiadavky zobrazené podľa žiadanej formy je potrebné vytvoriť súbor home.page v adresári /protected/pages/.

<%@ Title="Users List" %> 

<h1>Users List</h1>

<a href="<%= $this->Service->constructUrl('insert')%>">Create New User</a>

<br/>

<com:TDataGrid ID="UserGrid"

DataKeyField="id"

AutoGenerateColumns="false" / >

<com:TBoundColumn

HeaderText="ID"

DataField="id" />


<com:TBoundColumn

HeaderText="Member_id"

DataField="member_id" />


<com:TBoundColumn

HeaderText="Name"

DataField="name" />


<com:TBoundColumn

HeaderText="Surname"

DataField="surname" />


<com:TBoundColumn

HeaderText="Phone"

DataField="phone" />

 

<com:TBoundColumn

HeaderText="Email"

DataField="email" />


</com:TDataGrid >

 

 

                 Všetky tieto súbory je potrebné vytvoriť aj pre druhú tabuľku members, aby bola zaručená kompatibilita s už vytvorenými testovacími plánmi. Základ aplikácie pre tabuľku users už je vytvorení a teraz nasleduje nastavenie cesty k testovacej aplikácii a to v súbore /index.php. Tento súbor je dôležitý pre smerovanie a správny chod celej aplikácie.

<?php

$frameworkPath='/var/www/sites/diplomovka.sk/html/framework/prado.php';

// The following directory checks may be removed if performance is required

$basePath=dirname(__FILE__);

$assetsPath=$basePath.'/assets';

$runtimePath=$basePath.'/protected/runtime';

if(!is_file($frameworkPath))

die("Unable to find prado framework path $frameworkPath.");

if(!is_writable($assetsPath))

die("Please make sure that the directory $assetsPath is writable by Web server process.");

if(!is_writable($runtimePath))

die("Please make sure that the directory $runtimePath is writable by Web server process.");

require_once($frameworkPath);

$application=new TApplication;

$application->run();

?>
 

         

                   Po overení všetkých funkcionalít vytvorenej aplikácie, môže začať testovanie pomocou programu PHP_Depend. Z nameraných výsledkov je vidieť značný posun v rovine abstrakcie, ako u predchádzajúcich frameworkov.

 

prado test php depend

 

prado test php depend

 

Výsledky namerané pomocou programu JMeter v prehľadnej tabuľke nižšie.

 

Udalosť

Vzorky

Priemer [ms]

Stredná hodnota [ms]

Min [ms]

Max [ms]

Priepustnosť

Test č. 1

AddUser

10

1855

2255

234

3005

32,2/min

Users

10

2692

3011

1926

3985

22,2/min

Members

10

3384

3339

1913

5984

17,7/min

EditUser

10

2535

2367

2015

3673

23,6/min

Celkovo

40

2617

2454

234

5984

22,9/min

Test č. 2

AddUser

10

826

288

236

2706

1,2/sec

Users

10

2593

2849

1982

3006

23,1/min

Members

10

2592

2980

1929

3062

23,1/min

EditUser

10

2590

2611

2075

3382

23,1min

Celkovo

40

2150

2260

236

3382

27,8/min

Test č. 3

AddUser

10

705

256

237

2258

1,4/sec

Users

10

2589

2930

1977

3109

23,1/min

Members

10

3000

3016

1918

5123

20,0/min

EditUser

10

2596

2988

1913

3478

23,1/min

Celkovo

40

2222

2258

237

5123

26,9/min

 

prado test jmeter 

Zdrojový kód  >> na stiahnutie




                             

logo