Zend Framework quick start

  • create project
    [sourcecode]zf.sh create project rsvp[/sourcecode]
  • Link library
    [sourcecode]ln -s /path/to/ZendFramework-1.11.11-minimal/library/Zend .[/sourcecode]
  • set up access permission for application/ folder by add .htaccess file with line:
    [sourcecode]deny from all[/sourcecode]
  • To set the project as a sub-folder instead of document root (common in shared hosting), one has to set up path redirect. First, we need to change .htaccess file under the project folder to add path rewrite function (Note: need to make sure apache httpd.conf has the “AllowOverride All” set for the folder)

    [sourcecode]
    RewriteRule (.*) ./public/$1
    [/sourcecode]

    Second, we can edit configs/application.ini and add a line
    [sourcecode]settings.baseUrl = "/rsvp"[/sourcecode]

    Third, edit Bootstrap.php and add a function
    [sourcecode]
    protected function _initBaseUrl()
    {
    $options = $this->getOptions();
    $baseUrl = isset($options[‘settings’][‘baseUrl’])
    ? $options[‘settings’][‘baseUrl’]
    : null; // null tells front controller to use autodiscovery, the default
    $this->bootstrap(‘frontcontroller’);
    $front = $this->getResource(‘frontcontroller’);
    $front->setBaseUrl($baseUrl);
    }
    [/sourcecode]

  • create layout
    [sourcecode]zf.sh enable layout[/sourcecode]
    and then edit application/layouts/layout.phtml to add necessary header/footer inclusion.
  • set up database by editing application/configs/application.ini file
    [sourcecode]
    resources.db.adapter = PDO_MYSQL
    resources.db.params.host = localhost
    resources.db.params.username = my_username
    resources.db.params.password = my_password
    resources.db.params.dbname = my_db
    [/sourcecode]

  • create controller
    [sourcecode]zf.sh create controller controllername[/sourcecode]
  • create action
    [sourcecode]
    zf.sh create action add controllername
    zf.sh create action edit controllername
    zf.sh create action delete controllername
    [/sourcecode]
  • create model
    [sourcecode]
    zf.sh create db-table controlername db_table_name
    [/sourcecode]

    and then modify application/models/DbTable/ProjectName.php to add CRUD DB functions.

  • Maven command to run a Java main class

    There might be more than one Java classes in a Maven project that contains the main() function. To pick up a specific one to run, you can try the following command:

    [sourcecode]
    mvn exec:java -Dexec.mainClass="my_main_class_name"
    [/sourcecode]

    In case the memory is not enough, try the following command:

    [sourcecode]
    export MAVEN_OPTS=-Xmx1024m
    [/sourcecode]
    where 1024m is the max heap memory

    Reimport Maven module in Intellij

    I recently removed a Maven module from my Intellij project. Shortly after, I tried to reimport the same module again, but somehow Intellij stubbornly refuse to show it in the Project panel. Eventually I looked into the MyProject.ipr file and found the module’s pom.xml file appeared in the ignoreFiles list.

    [sourcecode]
    <option name="ignoredFiles">
    <set>
    <option value="/path/to/my/module/pom.xml" />
    </set>
    </option>
    [/sourcecode]

    After I deleted the specific line with the pom.xml, I was able to reimport the module successfully again.