个人工具
名字空间
变换
操作

Gallery:开发者指引

来自站长百科
(版本间的差异)
跳转到: 导航, 搜索
(新页面: = Guidelines for Gallery2 Developers = This is a set of notes that G2 developers should read before they start doing serious work on G2. Right now it's just a brain dump of things that I...)
 
 
(未显示1个用户的1个中间版本)
第1行: 第1行:
= Guidelines for Gallery2 Developers =
+
= Gallery2开发者指引=
This is a set of notes that G2 developers should read before they start doing serious work on G2.  Right now it's just a brain dump of things that I want to remember.  We should flesh it out as we go.
+
G2开发者在G2上开展正式工作之前应当参阅一下此注解集。
  
== Read and obey the Gallery Coding Standards! ==
+
== 阅读并遵循Gallery的编码标准! ==
:*'''[[Gallery:Coding_Standards|Gallery Coding Standards]]'''
+
:*'''[[Gallery:Coding_Standards|Gallery编码标准]]'''
:*'''[[Gallery:Coding_Guidelines|Gallery Coding Guidelines]]   
+
:*'''[[Gallery:Coding_Guidelines|Gallery编码指引]]   
  
== Always do an HTTP redirect after receiving a HTTP POST or GET where we actually take an action ==
+
== 在接收HTTP POST或GET(我们实际发生动作的地方)后进行HTTP重定向==
Whenever we actually make a change to the database or the filesystem as a result of an HTTP post or GET, we want to make sure that we redirect the user to a safe page.  This way, if the user hits the reload button, they will not trigger the action again!  All of the core views do this and can be used as an example for ways to make sure that it is done correctly.
+
无论何时我们对数据库或文件系统做修改,导致HTTP post或get,我们都希望确定将用户重定向至了某个安全页面。如此,如果用户点击的重新载入按钮,就不会再次触发动作了!所有的核心视图都能这样并能够作为实例方法来确保操作正确完成。
  
== After making any text changes to the system, re-build all translations! ==
+
== 在对系统做了任何文本修改之后,重建所有的翻译! ==
  
 
   % cd lib/tools/po
 
   % cd lib/tools/po
 
   % perl update-all-translations.pl
 
   % perl update-all-translations.pl
  
This will extract new strings.raw files and generate new messages.po files, but only if there's an actual change! Translators can monitor their .po files to know when they need to update the translations they own.  Changes to the strings.raw files will provide a clue as to what actually changed.
+
这将会提取新的strings.raw文件并生成新的messages.po文件,不过这仅当实际做了修改时才发生!翻译者可以监视自己的.po 文件以明确何时需要更新所拥有的翻译。对strings.raw文件所作的修改将会提供某种线索,即实际所作的修改。
  
== Use single quotes instead of double quotes where possible ==
+
== 可能话尽量使用单引号取代双引号 ==
PHP must interpret the entire contents of anything inside double quotes to see if it has any variables that need to be evaluated. Use single quotes when you don't have any variables inside the  string.
+
PHP必须解释双引号中的整个内容以确认其中是否有任何需要评估的变量。因此当字串中无需包含任何变量时,应使用单引号。
  
== GalleryStorage is backend agnostic ==
+
== GalleryStorage 是后端无关的(backend agnostic) ==
The GalleryStorage API makes no assumptions about how the back end works.  Therefore, you can not make any references to database tables, indexes, columns, rows, etc.  Instead you must refer to classes and members in the API.
+
GalleryStorage API不会管后端是如何工作的。因此你无法做出任何对于数据库表格,索引,栏目以及行等的参照。取而代之则是应该参照API中的类别及成员。
  
== Rebuild Map.inc and Entity.inc as well as Database Schemas whenever You Change an Entity or Map's Structure ==
+
== 无论何时你对某实体或地图结构做了修改,请重建Map.inc,Entity.inc以及数据库的架构==
A G2 member is a member which has a "@g2" XML snippet in its phpdoc variable comment. We use that to generate the Entities.inc and Maps.inc files associated with every entity class and map, and also to generate the SQL database definitions.  We must change the entity/map schema version number and create entity migration XML files whenever we change entity members.
+
G2用户在其phpdoc变量评论中拥有一个"@g2"片段。我们使用这个来生成与各实体类别以及地图相关的Entities.inc和Maps.inc文件,同样也用于生成SQL 数据库定义。无论何时对实体成员做修改,我们都必须修改实体/地图架构版本号并创建实体迁移XML文件。
 
   cd modules/[modulename]/classes/ && make
 
   cd modules/[modulename]/classes/ && make
  
== PHP Settings ==
+
== PHP 设定 ==
All Gallery developers should use the following PHP settings in their development environment:
+
所有Gallery开发者在开发环境中都应使用下面的PHP设定:
* display_errors is actively suppressed in G2. It's very important that you enable display_errors during development, else you might miss uninitialized / undefined variables or constants! In config.php, change
+
* display_errors在G2中是被主动抑制的。在开发过程中,启用display_errors是至关重要的,否则的话你可能就会错过未初置/未定义的变量或常量!在config.php中,将
 
   @ini_set('display_errors', 0);
 
   @ini_set('display_errors', 0);
   to
+
   修改为
 
   ini_set('display_errors', 1);
 
   ini_set('display_errors', 1);
  
* And ensure your php.ini settings are:
+
* 并确保你的php.ini设定为:
 
   error_reporting = E_ALL
 
   error_reporting = E_ALL
 
   short_open_tag = Off
 
   short_open_tag = Off
第43行: 第43行:
 
   include_path = '/bogus'
 
   include_path = '/bogus'
  
'''Note:''' Pay special attention to the warnings on the lib/tools/phpunit/index.php page. It will show if any of the above settings are wrong.
+
'''注: '''请特别留意lib/tools/phpunit/index.php页面上的警告提示。如上述设定中发生错误将会做出警告的。
  
 
[[Category:Gallery 2:Development|Developer Guidelines]]
 
[[Category:Gallery 2:Development|Developer Guidelines]]

2008年8月28日 (四) 06:53的最后版本

目录

Gallery2开发者指引

G2开发者在G2上开展正式工作之前应当参阅一下此注解集。

阅读并遵循Gallery的编码标准!

在接收HTTP POST或GET(我们实际发生动作的地方)后进行HTTP重定向

无论何时我们对数据库或文件系统做修改,导致HTTP post或get,我们都希望确定将用户重定向至了某个安全页面。如此,如果用户点击的重新载入按钮,就不会再次触发动作了!所有的核心视图都能这样并能够作为实例方法来确保操作正确完成。

在对系统做了任何文本修改之后,重建所有的翻译!

  % cd lib/tools/po
  % perl update-all-translations.pl

这将会提取新的strings.raw文件并生成新的messages.po文件,不过这仅当实际做了修改时才发生!翻译者可以监视自己的.po 文件以明确何时需要更新所拥有的翻译。对strings.raw文件所作的修改将会提供某种线索,即实际所作的修改。

可能话尽量使用单引号取代双引号

PHP必须解释双引号中的整个内容以确认其中是否有任何需要评估的变量。因此当字串中无需包含任何变量时,应使用单引号。

GalleryStorage 是后端无关的(backend agnostic)

GalleryStorage API不会管后端是如何工作的。因此你无法做出任何对于数据库表格,索引,栏目以及行等的参照。取而代之则是应该参照API中的类别及成员。

无论何时你对某实体或地图结构做了修改,请重建Map.inc,Entity.inc以及数据库的架构

G2用户在其phpdoc变量评论中拥有一个"@g2"片段。我们使用这个来生成与各实体类别以及地图相关的Entities.inc和Maps.inc文件,同样也用于生成SQL 数据库定义。无论何时对实体成员做修改,我们都必须修改实体/地图架构版本号并创建实体迁移XML文件。

 cd modules/[modulename]/classes/ && make

PHP 设定

所有Gallery开发者在开发环境中都应使用下面的PHP设定:

  • display_errors在G2中是被主动抑制的。在开发过程中,启用display_errors是至关重要的,否则的话你可能就会错过未初置/未定义的变量或常量!在config.php中,将
 @ini_set('display_errors', 0);
 修改为
 ini_set('display_errors', 1);
  • 并确保你的php.ini设定为:
 error_reporting = E_ALL
 short_open_tag = Off
 magic_quotes_gpc = On
 allow_call_time_pass_reference = Off
 register_globals = Off
 display_errors = On
 allow_url_fopen = Off
 include_path = '/bogus'

注: 请特别留意lib/tools/phpunit/index.php页面上的警告提示。如上述设定中发生错误将会做出警告的。