2009年7月29日 星期三

LAMP in fedora 10 需注意的兩三事

利用網路上資源安裝完成LAMP 環境後,

我遇到兩個問題:

Q1. 網路設定一直無法更動,更改後會變回預設模式(DHCP mode).

A1. 移除 fedora 10 所安裝的套件 "Network Manager".


Q2. 網頁內容只有本機端可見,外部網路無法連入.

A2. 關閉 iptables & SELinux service.

2009年7月22日 星期三

symfony "schema.yml" file

`schema.yml` 文件包含了所有的資料庫表格的規劃描述。每個都通過如下訊息描述:

* `type`: 資料類型 (`boolean`, `tinyint`, `smallint`, `integer`, `bigint`, `double`,
`float`, `real`, `decimal`, `char`, `varchar(size)`, `longvarchar`,
`date`, `time`, `timestamp`, `blob`, `clob`)

* `required`: 設為 `true` 用來表示此欄位內容不得為空白

* `index`: 設為 `true` 為該表格創建索引鍵,或者設置 `unique` 在該表格上創建唯一索引鍵。

對於設置資料內容為 `~` (`id`, `created_at`, 和 `updated_at`) 的資料,symfony 會探測最合適的
配置方式(`id`是作為主鍵,`created_at` 和 `updated_at`是時間戳記)

**NOTE**
`onDelete`: 屬性定義了外鍵的`ON DELETE`行為。Propel 只是 `CASCADE`, `SETNULL`,
`RESTRICT` 等幾種。
例如,删除一條 `job` 紀錄後,`jobeet_job_affiliate` 中所有相關
紀錄也會自動通過數據庫删除。如果底層的數據庫引擎不支持該功能,Propel可以做到。

2009年7月21日 星期二

Backend Admin FileUpload for symfony 1.2

This approach is to provide a path option to sfValidatorFile...
--------------------------------------------------------------
// lib/form/StudentForm.class.php
class StudentForm extends BaseStudentForm
{
    public function configure()
    {
        $this->widgetSchema['photo'] = new sfWidgetFormInputFile();
        $this->validatorSchema['photo'] = new sfValidatorFile(array(
        'path' => sfConfig::get('sf_web_dir').'/uploads/students',
        ));
    }
}
--------------------------------------------------------------
And write a generatePhotoFilename() method on Student (assuming "Photo" is the phpName for the field name "photo")
--------------------------------------------------------------

// lib/model/Student.php
class Student extends BaseStudent
{
    public function generatePhotoFilename(sfValidatedFile $file)
    {
        return $file->getOriginalName();
    }
}

--------------------------------------------------------------

This way is probably the preferred approach as it makes for a thinner controller.