Qcodo ukážky

CRUD

crud.php:

<? 
// require('prepend.inc.php');
// Create
$objScript = new Script();

$objScript->Name "Nový skript";
$objScript->Code "<? echo 'Hello!'; ?>";
$objScript->Category Category::LoadById(1);
//$objScript->Save();

// Read
//$objCategory = Category::LoadById(1);
$objCategory Category::Load(1);
echo 
'<pre>';
var_dump($objCategory);
echo 
'</pre>';

// Update
$objCategory->Name "Nový názov kategórie";
//$objCategory->Save();

// Delete
//$objCategory->Delete()
?>
<h3>Ďalšie vygenerované metódy</h3>
<p>
Celkový počet skriptov: <?= Script::CountAll(); ?>
<br />
<? $objCategory Category::LoadById(1); ?>
Počet skriptov v kategórii PHP: <?= $objCategory->CountScripts(); ?>
<br />
<? $objScriptArray $objCategory->GetScriptArray(); ?>
Skripty v kategórii PHP: <?= implode($objScriptArray', '); ?><br />
<h4>Vygenerované metódy pre triedu (model) <b>Category</b>:</h4>
<? $str '<?
public function AssociateScript(Script $objScript);
public function UnassociateScript(Script $objScript);
public function UnassociateAllScripts();
public function DeleteAssociatedScript(Script $objScript);
//...
?>
'
;
highlight_string($str);
?>

</p>

Výstup skriptu crud.php:

object(Category)#13 (6) {
  ["intId:protected"]=>
  int(1)
  ["strName:protected"]=>
  string(3) "php"
  ["_objScript:private"]=>
  NULL
  ["_objScriptArray:private"]=>
  array(0) {
  }
  ["__strVirtualAttributeArray:protected"]=>
  array(0) {
  }
  ["__blnRestored:protected"]=>
  bool(true)
}

Ďalšie vygenerované metódy

Celkový počet skriptov: 7
Počet skriptov v kategórii PHP: 4
Skripty v kategórii PHP: PHP hello world, php_count.php, random_line.php, webserver.sh

Vygenerované metódy pre triedu (model) Category:

<?
public function AssociateScript(Script $objScript);
public function 
UnassociateScript(Script $objScript);
public function 
UnassociateAllScripts();
public function 
DeleteAssociatedScript(Script $objScript);
//...
?>

QForms

qform.php:

<?

class Form extends QForm {
  protected 
$lblText;
  protected 
$btnButton;
  
  protected 
$intCount;
  
  protected function 
Form_Create() {
    
$this->intCount 0;
  
    
$this->lblText = new QLabel($this);
    
$this->lblText->Text "Stav počítadla: $this->intCount";
    
$this->lblText->AddAction(new QMouseOverEvent(), new QServerAction('zmenText'));
    
$this->btnButton = new QButton($this);
    
$this->btnButton->Text 'Klikni!';
    
$this->btnButton->AddAction(new QClickEvent(), new QServerAction('zmenText'));
  }
  
  protected function 
zmenText() {
    
$this->intCount++;
    
$this->lblText->Text "Stav počítadla: $this->intCount";
  }
}

Form::Run('Form''qform.tpl.php');

?>  

Výstup skriptu qform.php:

Stav počítadla: 0

Práca s viacjazyčnými stránkami

i18n.php:

<? echo QApplication::Translate('Previous'); ?>
<br />
<? _t('Next'); ?>

Výstup skriptu i18n.php:

Späť
Ďalej

Qcodo Query

qq.php:

<p class="bold">
  Základné Qcodo Query metódy:
<p>
<ul>
        <li><b>QuerySingle</b>: Qcodo Query vracajúce len jeden objekt</li>
        <li><b>QueryArray</b>: Qcodo Query vracajúce pole ovjektov</li>
        <li><b>QueryCount</b>: Qcodo Query vracajúce počet riadkov</li>
</ul>
</p>
<p class="bold">QuerySingle</p>
<p>
<? $objScript Script::QuerySingle(QQ::Equal(QQN::Script()->Id4)); ?>
<?= $objScript
->Name?><br />
</p>
<? $objScriptArray Script::QueryArray(QQ::Equal(QQN::Script()->Category->Id1), QQ::OrderBy(QQN::Script()->Namefalse)); ?>

<p class="bold">QueryArray</p>
<p><ul>
<? foreach($objScriptArray as $objScript) { ?>
  <li><?= $objScript->Name?>, kategória: <?= $objScript->Category->Name?></li>
<? ?>
</ul>
</p>

<p class="bold">QueryCount</p>
<p>
<? echo Script::QueryCount(QQ::Equal(QQN::Script()->Category->Id1)); ?>
</p>

Výstup skriptu qq.php:

Základné Qcodo Query metódy:

QuerySingle

PHP hello world

QueryArray

QueryCount

4

Late binding

late-binding.php:

<?
//QApplication::$Database[1]->EnableProfiling();

//$objScript = Script::LoadById(4);
$objScript Script::QuerySingle(QQ::Equal(QQN::Script()->Id4));

echo 
"<pre>";
var_dump($objScript);
echo 
"</pre>";

echo 
$objScript->Name ', kategória: ' $objScript->Category->Name;

echo 
"<pre>";
var_dump($objScript);
echo 
"</pre>";

//QApplication::$Database[1]->OutputProfiling();

?>

Výstup skriptu late-binding.php:

object(Script)#13 (8) {
  ["intId:protected"]=>
  int(4)
  ["strName:protected"]=>
  string(15) "PHP hello world"
  ["strCode:protected"]=>
  string(26) ""
  ["dttCreated:protected"]=>
  object(QDateTime)#27 (3) {
    ["blnDateNull:protected"]=>
    bool(false)
    ["blnTimeNull:protected"]=>
    bool(false)
    ["strSerializedData:protected"]=>
    NULL
  }
  ["intCategoryId:protected"]=>
  int(1)
  ["__strVirtualAttributeArray:protected"]=>
  array(0) {
  }
  ["__blnRestored:protected"]=>
  bool(true)
  ["objCategory:protected"]=>
  NULL
}
PHP hello world, kategória: php
object(Script)#13 (8) {
  ["intId:protected"]=>
  int(4)
  ["strName:protected"]=>
  string(15) "PHP hello world"
  ["strCode:protected"]=>
  string(26) ""
  ["dttCreated:protected"]=>
  object(QDateTime)#27 (3) {
    ["blnDateNull:protected"]=>
    bool(false)
    ["blnTimeNull:protected"]=>
    bool(false)
    ["strSerializedData:protected"]=>
    NULL
  }
  ["intCategoryId:protected"]=>
  int(1)
  ["__strVirtualAttributeArray:protected"]=>
  array(0) {
  }
  ["__blnRestored:protected"]=>
  bool(true)
  ["objCategory:protected"]=>
  object(Category)#24 (6) {
    ["intId:protected"]=>
    int(1)
    ["strName:protected"]=>
    string(3) "php"
    ["_objScript:private"]=>
    NULL
    ["_objScriptArray:private"]=>
    array(0) {
    }
    ["__strVirtualAttributeArray:protected"]=>
    array(0) {
    }
    ["__blnRestored:protected"]=>
    bool(true)
  }
}

Early binding

early-binding.php:

<?
QApplication
::$Database[1]->EnableProfiling();

$objScript Script::QuerySingle(QQ::Equal(QQN::Script()->Id4), QQ::Clause(QQ::Expand(QQN::Script()->Category)));

echo 
$objScript->Name ', kategória: ' $objScript->Category->Name;

QApplication::$Database[1]->OutputProfiling();

?>

Výstup skriptu early-binding.php:

PHP hello world, kategória: php
PROFILING INFORMATION FOR DATABASE CONNECTION #1: 1 query performed. Please click here to view profiling detail