Saturday, 6 October 2012

Creating a module and a db in The Bug Genie 3.2

The current documentation is outdated so I tryed to make short note on how to do this.

ATM using cli will generate some errors, here is how to solve them.

In order to create a module from cli you need to do something like this from the console:

php -f tbg_cli create_module MODULE_NAME

this will generate some errors like:

  • Declaration of MODULE_NAME::_initialize() must be compatible with that of TBGModule::_initialize()
- this can be fixed by removing the parameter from _initialize in your class file (class/MODULE_NAME.class.php)
- also be sure to remove the setters in the init function, they are also depreciated
  • Anotation @Table missing
- just add this before the class definition in your class file
 * @Table(name="TBGModulesTable")

In order to be able to create tables you need to create (if it dose not exist) a folder named B2DB in your class folder and include the table definition there as a class.php file like so:

  + B2DB
     - MyTable.class.php

MyTable.class.php :

use b2db\Core,

     * @Table(name="my_table_name")
    class MyTable extends TBGB2DBTable{
        const B2DB_TABLE_VERSION = 1;
        const B2DBNAME = 'my_table_name';
        const ID = '';
        const TEXT = 'my_table_name.a_text_field';
        const SCOPE = 'my_table_name.a_relate_field_to_scopes';

        protected function _initialize()
            parent::_setup(self::B2DBNAME, self::ID);
            parent::_addForeignKeyColumn(self::SCOPE, TBGScopesTable::getTable(), TBGScopesTable::ID);

all the methods to add text,varchar,int, etc can be found in class Table (core/B2DB/Table.class.php)

No comments:

Post a Comment