Development

Documentation/ja_JP/book/1.0/02-Exploring-Symfony-s-CodeExploring (diff)

You must first sign up to be able to contribute.

Changes between Version 10 and Version 11 of Documentation/ja_JP/book/1.0/02-Exploring-Symfony-s-CodeExploring

Show
Ignore:
Author:
river.bright (IP: 221.16.52.46)
Timestamp:
02/24/07 01:25:00 (11 years ago)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/ja_JP/book/1.0/02-Exploring-Symfony-s-CodeExploring

    v10 v11  
    421421>symfonyで利用されているコーディング標準に、大文字で始まるキャメルケースがクラス名と変数名に標準となっています。しかし、2つの例外が存在します。それが`sf`で始まるsymfonyのコアクラスであり、小文字で始まります。そして、テンプレートで利用される変数名はアンダースコアによって区切る構文になっています。 
    422422 
    423 Code Organization 
     423コード編成 
    424424----------------- 
    425425 
    426 Now that you know the different components of a symfony application, you're probably wondering how they are organized. Symfony organizes code in a project structure and puts the project files into a standard tree structure. 
    427  
    428 ### Project Structure: Applications, Modules, and Actions 
    429  
    430 In symfony, a project is a set of services and operations available under a given domain name, sharing the same object model. 
    431  
    432 Inside a project, the operations are grouped logically into applications. An application can normally run independently of the other applications of the same project. In most cases, a project will contain two applications: one for the front-office and one for the back-office, sharing the same database. But you can also have one project containing many mini-sites, with each site as a different application. Note that hyperlinks between applications must be in the absolute form. 
    433  
    434 Each application is a set of one or more modules. A module usually represents a page or a group of pages with a similar purpose. For example, you might have the modules home, articles, h`elp`, `shoppingCart`, `account`, and so on. 
    435  
    436 Modules hold actions, which represent the various actions that can be done in a module. For example, a `shoppingCart` module can have `add`, `show`, and `update` actions. Generally, actions can be described by a verb. Dealing with actions is almost like dealing with pages in a classic web application, although two actions can result in the same page (for instance, adding a comment to a post in a weblog will redisplay the post with the new comment). 
     426symfonyアプリケーションのコンポーネントの違いを知っていれば、どのようにして構成されているかと思われるかもしれません。symfonyはプロジェクト構造内でコードを組織化しており、プロジェクトファイルを標準的なツリー構造内におきます。 
     427 
     428### プロジェクト構造 アプリケーション、モデル、アクション 
     429 
     430symfonyで、プロジェクトはドメイン名以下での1組のサービスとオペレーションで、同じオブジェクトとモデルを共有しています。 
     431 
     432プロジェクト内で、オペレーションはロジカルにアプリケーション内にまとめられます。アプリケーションは普通は同じプロジェクトのほかのアプリケーションに依存せずに動作します。ほとんどの場合、プロジェクトは2つのアプリケーションを含みます。1つはフロントオフィス側のアプリケーションで、もう1つはバックオフィス側のアプリケーションであり、同じデータベースを共有しています。しかし、多くの小規模なサイトで各々が異なるアプリケーションが存在する1つのプロジェクトを構築することもできます。アプリケーション間のリンクは絶対的なフォーム内になければならないということに注意してください。 
     433 
     434各アプリケーションは1組かそれ以上のモジュールです。モジュールは通常同じような目的をもつページの塊か1つのページを表します。たとえば、`home`,`articles`,`help`,`shoppingCart`,`account`などのモジュールが必要かもしれません。 
     435 
     436モジュールはアクションを含んでおり、これは様々なモジュール内で行われる様々なアクションを表しています。たとえば、`shoppingCart`モジュールは`add`,`show`,`update`アクションを含んでいるでしょう。一般的に、アクションは動詞で表されます。アクションを扱うことは古典的なウェブアプリケーションを扱うこととほとんど同じであり、同じページに2つのアクションが結果を出すことができます。(たとえばウェブログで記事にコメントを追加することは新しいコメントがされた記事を再表示することと同じです) 
    437437 
    438438>**TIP** 
    439 >If this represents too many levels for a beginning project, it is very easy to group all actions into one single module, so that the file structure can be kept simple. When the application gets more complex, it will be time to organize actions into separate modules. As mentioned in Chapter 1, rewriting code to improve its structure or readability (but preserving its behavior) is called refactoring, and you will do this a lot when applying RAD principles. 
    440  
    441 Figure 2-3 shows a sample code organization for a weblog project, in a project/ application/module/action structure. But be aware that the actual file tree structure of the project will differ from the setup shown in the figure. 
     439>もし、初心者のプロジェクトにとってあまりに多くのレベルが存在するなら、全てのアクションを1つのモジュールにまとめてしまうことが簡単です。というのも、ファイル構造はシンプルになるからです。アプリケーションがより複雑になったときに、アクションをモジュールに分けるようにすればいいでしょう。第1章で説明しているように、構造を改善するためや可読性を改善するために(振る舞いは同じままで)コードを書き直すことをリファクタリングと呼びます。そしてRAD原理を適用するときにこのようなことを行うでしょう。 
     440 
     441図2-3はprojecet/application/module/actionディレクトリのウェブログのプロジェクトの構造のサンプルを表しています。しかし、実際のファイルのツリー構造は図にしめしたようなものとは異なるということに注意してください。 
    442442 
    443443![][3] 
    447447Figure 2-3 - Example of code organization 
    448448 
    449 ### File Tree Structure 
     449### ファイルツリー構造 
    450450 
    451451All web projects generally share the same types of contents, such as the following: