Solar manual 1.4. 配置系统

  1. 打开SYSTEM/config.php文 件,在该文件末尾的return语句之前,给文件中的$config数组添加新键值。
  2. 查找前端控制器配置项,并通过修改“classes”键指向的值来指定应用类名的前缀。
    <?php
    // front controller
    $config['Solar_Controller_Front'] = array(
        'classes' => array('Acme_App', 'Solar_App'),
        // ...
        'explain' => true,
    );
    [Note] Note
    把Solar_App也压入应用类栈中,这使Solar在第一次定位应用时,不 仅会查找Acme_App,而且也会查找Solar_App。
  3. 查找模型目录配置项,并指定应用类名的前缀。
    <?php
    // model catalog
    $config['Solar_Sql_Model_Catalog']['classes'] = array('Acme_Model');
  4. 给$config数组添加新元素,指定应用所使用的SQL适配器,并做相关配置。对于SQLite,使用下面这种配置:
    <?php
    // the SQL adapter class to use
    $config['Solar_Sql']['adapter'] = 'Solar_Sql_Adapter_Sqlite';
    
    // configure the SQL adapter class
    $config['Solar_Sql_Adapter_Sqlite'] = array(
        'name' => "$system/sqlite/acme.sq3",  // the database file to use
    );
    [Note] Note
    变量$system在SYSTEM/config.php文件中定义,它的值是 SYSTEM目录。

    对于MySQL,使用下面这种配置:

    <?php
    // the SQL adapter class to use
    $config['Solar_Sql']['adapter'] = 'Solar_Sql_Adapter_Mysql';
    
    // configure the SQL adapter class
    $config['Solar_Sql_Adapter_Mysql'] = array(
        'host' => 'localhost', // the database server host
        'name' => 'database',  // the database name
        'user' => 'username',  // authenticate as this user
        'pass' => 'password',  // authenticate with this password
    );
    [Note] Note
    对于PostgreSQL,用Solar_Sql_Adapter_Pgsql 替换适配器名及配置项的键名。

最后,配置文件的最后一部分应该像这样:

<?php
/**
 * project overrides
 */

// front controller
$config['Solar_Controller_Front'] = array(
    'classes' => array('Acme_App', 'Solar_App'),
    'disable' => array(),
    'default' => 'hello',
    'rewrite' => array(),
    'routing' => array(),
    'explain' => true,
);

// model catalog
$config['Solar_Sql_Model_Catalog']['classes'] = array('Acme_Model');

// the SQL adapter class to use
$config['Solar_Sql']['adapter'] = 'Solar_Sql_Adapter_Sqlite';

// configure the SQL adapter class
$config['Solar_Sql_Adapter_Sqlite'] = array(
    'name' => "$system/sqlite/acme.sq3",  // the database file to use
);

/**
 * done!
 */
return $config;

Solar manual 1.3. 创建工作区

在某些框架中,你可以把某个项目的文件放在单独的app和lib目录中。Solar是面向类库和命名空间的,所以非Solar系统文件将被放在同一 个地方,就像Solar本身一样,只不过要把它们放在不同的“工作区”。在这个演示教程中,我们把这里的“工作区”命名为Acme。

在命令行环境下,进入SYSTEM目录,输入 make-vendor命令。你将会看到类似下面这种输出:

$ ./script/solar make-vendor Acme
Making vendor source directories.
Creating SYSTEM/source/acme/config.
Creating SYSTEM/source/acme/docs.
Creating SYSTEM/source/acme/script.
Creating SYSTEM/source/acme/tests.
Creating SYSTEM/source/acme/tests/Mock.
Creating SYSTEM/source/acme/tests/Mock/Acme.
Creating SYSTEM/source/acme/tests/Test.
Creating SYSTEM/source/acme/tests/Test/Acme.
Creating SYSTEM/source/acme/Acme/Cli/Help.
Creating SYSTEM/source/acme/Acme/Cli/Help/Info.
Creating SYSTEM/source/acme/Acme/Cli/Help/Locale.
Creating SYSTEM/source/acme/Acme/Controller/Bread/Locale.
Creating SYSTEM/source/acme/Acme/Controller/Bread/Public.
Creating SYSTEM/source/acme/Acme/Controller/Bread/View.
Creating SYSTEM/source/acme/Acme/Controller/Command/Info.
Creating SYSTEM/source/acme/Acme/Controller/Command/Locale.
Creating SYSTEM/source/acme/Acme/Controller/Page/Layout.
Creating SYSTEM/source/acme/Acme/Controller/Page/Locale.
Creating SYSTEM/source/acme/Acme/Controller/Page/Public.
Creating SYSTEM/source/acme/Acme/Controller/Page/View.
Creating SYSTEM/source/acme/Acme/Model.
Writing SYSTEM/source/acme/Acme/Cli/Help.php ... done.
Writing SYSTEM/source/acme/Acme/Cli/Help/Info/options.php ... done.
Writing SYSTEM/source/acme/Acme/Controller/Bread.php ... done.
Writing SYSTEM/source/acme/Acme/Controller/Bread/Locale/en_US.php ... done.
Writing SYSTEM/source/acme/Acme/Controller/Bread/View/_item.php ... done.
Writing SYSTEM/source/acme/Acme/Controller/Bread/View/_list.php ... done.
Writing SYSTEM/source/acme/Acme/Controller/Bread/View/add.php ... done.
Writing SYSTEM/source/acme/Acme/Controller/Bread/View/browse.php ... done.
Writing SYSTEM/source/acme/Acme/Controller/Bread/View/delete.php ... done.
Writing SYSTEM/source/acme/Acme/Controller/Bread/View/edit.php ... done.
Writing SYSTEM/source/acme/Acme/Controller/Bread/View/read.php ... done.
Writing SYSTEM/source/acme/Acme/Controller/Bread/View/search.php ... done.
Writing SYSTEM/source/acme/Acme/Controller/Command.php ... done.
Writing SYSTEM/source/acme/Acme/Controller/Page.php ... done.
Writing SYSTEM/source/acme/Acme/Filter.php ... done.
Making directory SYSTEM/source/acme/Acme/Sql ... done.
Writing SYSTEM/source/acme/Acme/Sql/Model.php ... done.
Making directory SYSTEM/source/acme/Acme/Sql/Model ... done.
Writing SYSTEM/source/acme/Acme/Sql/Model/Collection.php ... done.
Writing SYSTEM/source/acme/Acme/Sql/Model/Metadata.php ... done.
Writing SYSTEM/source/acme/Acme/Sql/Model/Record.php ... done.
Writing SYSTEM/source/acme/config/default.php ... done.
Writing SYSTEM/source/acme/config/run-tests.php ... done.
Writing SYSTEM/source/acme/Acme/Cli/Help/Info/help.txt ... done.
Making links for vendor 'Acme' ...
    Making link 'include/Acme' ... done.
    Making link 'include/Test/Acme' ... done.
    Making link 'include/Mock/Acme' ... done.
    Making link 'script/acme' ... done.
... done.
Making public symlinks for 'Acme' ...
    Making public directory docroot/public/Acme/Controller ... done.
    Making public symlink for Acme_Controller_Bread ... done.
    Making public symlink for Acme_Controller_Page ... done.
... done.
Remember to add 'Acme_App' to the ['Solar_Controller_Front']['classes'] element in your config file so that it finds your apps.
Remember to add 'Acme_Model' to the ['Solar_Sql_Model_Catalog']['classes'] element in your config file so that it finds your models.
$
[Note] Note
上面发生的事情是:Solar创建source/acme目录、生成基本的模型和控制器类库并创建视图帮 助、数据过滤、共享、文档及测试等子目录。接着Solar创建include/Acme链接指向源文件。这样,你就可以在source目录中存放非类库文 件,但是include路径中却只包含类库文件。

Solar manual 1.1. 简介

本章是使用Solar创建博客的教程,几乎所有框架都会有这样一个示例。请注意,本示例没有考虑安全方面的问题, 仅用于演示,而且它只反映Solar很小一部分特性。要深入了解Solar,务必阅读其他部分手册。

在本示例中,你将会学会:

  • 下载并安装一个新的Solar系统
  • 创建一个工作区
  • 配置系统
  • 从数据表创建模型
  • 创建基本的应用
  • 添加应用动作和视图
    • 查看所有公开文章
    • 查看一篇文章
    • 查看所有草稿
    • 编辑一篇文章
    • 添加一篇新文章
    • 删除一篇文章
  • 为应用选择本地化字符
  • 使用虚拟主机,建立简洁的URI

Chapter 1. 快速入门—简单博 客演示

Table of Contents

1.1. 简介
1.2. 下载并安装Solar
1.3. 创建工作区
1.4. 配置系统
1.5. 从数据表创建模型
1.6. 创建一个基本应用
1.7. 建立一个基本应用
1.8. 浏览所有公开的文章
1.8.1 “Index”方法
1.8.2 “Index”视图代码
1.9. 阅读一篇文章
1.9.1 “Read”方法
1.9.2 “Read”视图文件
1.10. 浏览所有草稿
1.10.1 “Drafts”方法
1.10.2 “Drafts”视图文件
1.11. 编辑文章
1.11.1 “Edit”Action方法
1.11.2 “Edit”视图文件
1.12 添加新文章
1.12.1 “Add” Action方法
1.12.2 “Add”视图文件
1.13 删除文章
1.13.1 “Delete” Action方法
1.13.2 “Delete”视图文件
1.14 设置本地化字符串
1.14.1 关于本地文件和方法
1.14.2 修改本地化文件
1.15 在虚拟主机中使用简洁的URIS