demo.php (same as in tutorial) gives:
Fatal error: Call to undefined method Person::queryhelper() in C:\www\vhosts\localhost\includes\data_classes\generated\PersonGen.class.php on line 551
<?php
require('includes/prepend.inc.php');
$objPerson = new Person();
$objPerson->FirstName = 'Mike';
$objPerson->Save();
?>
Done.
Person.class.php:
<?php
require(__DATAGEN_CLASSES__ . '/PersonGen.class.php');
/**
* The Person class defined here contains any
* customized code for the Person class in the
* Object Relational Model. It represents the "person" table
* in the database, and extends from the code generated abstract PersonGen
* class, which contains all the basic CRUD-type functionality as well as
* basic methods to handle relationships and index-based loading.
*
* @package My Application
* @subpackage DataObjects
*
*/
class Person extends PersonGen {
/**
* Default "to string" handler
* Allows pages to _p()/echo()/print() this object, and to define the default
* way this object would be outputted.
*
* Can also be called directly via $objPerson->__toString().
*
* @return string a nicely formatted string representation of this object
*/
public function __toString() {
return sprintf('Person Object %s', $this->intId);
}
// Override or Create New Load/Count methods
// (For obvious reasons, these methods are commented out...
// but feel free to use these as a starting point)
/*
public static function LoadArrayBySample($strParam1, $intParam2, $objOptionalClauses = null) {
// This will return an array of Person objects
return Person::QueryArray(
QQ::AndCondition(
QQ::Equal(QQN::Person()->Param1, $strParam1),
QQ::GreaterThan(QQN::Person()->Param2, $intParam2)
),
$objOptionalClauses
);
}
public static function LoadBySample($strParam1, $intParam2, $objOptionalClauses = null) {
// This will return a single Person object
return Person::QuerySingle(
QQ::AndCondition(
QQ::Equal(QQN::Person()->Param1, $strParam1),
QQ::GreaterThan(QQN::Person()->Param2, $intParam2)
),
$objOptionalClauses
);
}
public static function CountBySample($strParam1, $intParam2, $objOptionalClauses = null) {
// This will return a count of Person objects
return Person::QueryCount(
QQ::AndCondition(
QQ::Equal(QQN::Person()->Param1, $strParam1),
QQ::Equal(QQN::Person()->Param2, $intParam2)
),
$objOptionalClauses
);
}
public static function LoadArrayBySample($strParam1, $intParam2, $objOptionalClauses) {
// Performing the load manually (instead of using Qcodo Query)
// Get the Database Object for this Class
$objDatabase = Person::GetDatabase();
// Properly Escape All Input Parameters using Database->SqlVariable()
$strParam1 = $objDatabase->SqlVariable($strParam1);
$intParam2 = $objDatabase->SqlVariable($intParam2);
// Setup the SQL Query
$strQuery = sprintf('
SELECT
`person`.*
FROM
`person` AS `person`
WHERE
param_1 = %s AND
param_2 < %s',
$strParam1, $intParam2);
// Perform the Query and Instantiate the Result
$objDbResult = $objDatabase->Query($strQuery);
return Person::InstantiateDbResult($objDbResult);
}
*/
// Override or Create New Properties and Variables
// For performance reasons, these variables and __set and __get override methods
// are commented out. But if you wish to implement or override any
// of the data generated properties, please feel free to uncomment them.
/*
protected $strSomeNewProperty;
public function __get($strName) {
switch ($strName) {
case 'SomeNewProperty': return $this->strSomeNewProperty;
default:
try {
return parent::__get($strName);
} catch (QCallerException $objExc) {
$objExc->IncrementOffset();
throw $objExc;
}
}
}
public function __set($strName, $mixValue) {
switch ($strName) {
case 'SomeNewProperty':
try {
return ($this->strSomeNewProperty = QType::Cast($mixValue, QType::String));
} catch (QInvalidCastException $objExc) {
$objExc->IncrementOffset();
throw $objExc;
}
default:
try {
return (parent::__set($strName, $mixValue));
} catch (QCallerException $objExc) {
$objExc->IncrementOffset();
throw $objExc;
}
}
}
*/
}
?>
Start page:
Qcodo Development Framework 0.3.32 (Qcodo Beta 3)
Start Page
It worked!
If you are seeing this, then it means that the framework has been successfully installed.
Make sure your database connection properties are up to date, and then you can add tables to your database, and go to either of the following webpages:
/_devtools/codegen.php - to code generate your tables
/form_drafts - to view the generated Form Drafts of your database
/examples - to run the Qcodo Examples Site locally
For more infromation, please go to the Qcodo website at: http://www.qcodo.com/
Qcodo Settings
QCODO_VERSION = "0.3.32 (Qcodo Beta 3)"
__SUBDIRECTORY__ = ""
__VIRTUAL_DIRECTORY__ = ""
__INCLUDES__ = "c:/www/vhosts/localhost/includes"
__QCODO_CORE__ = "c:/www/vhosts/localhost/includes/qcodo/_core"
ERROR_PAGE_PATH = "/assets/php/_core/error_page.php"
PHP Include Path = ".;C:/www/vhosts/localhost/;C:/www/php5/includes/"
QApplication::$DocumentRoot = "c:/www/vhosts/localhost"
QApplication::$EncodingType = "UTF-8"
QApplication::$PathInfo = ""
QApplication::$QueryString = ""
QApplication::$RequestUri = "/index.php"
QApplication::$ScriptFilename = "C:/www/vhosts/localhost/index.php"
QApplication::$ScriptName = "/index.php"
QApplication::$ServerAddress = "127.0.0.1"
QApplication::$Database[1] = array ( 'adapter' => 'MySqli5', 'server' => 'localhost', 'port' => NULL, 'database' => 'demo', 'username' => 'root', 'password' => 'pass', 'profiling' => false, )
DB was created from MySQL5 console (excecuted demo.sql)