Added Kohana v3.0.8

This commit is contained in:
Deon George
2010-08-21 14:43:03 +10:00
parent 27aee719b0
commit 64bdbdc981
558 changed files with 58712 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
# Autoloading - טעינה אוטומטית
Kohana יודע לנצל את יכולת הטעינה אוטומטית של PHP [autoloading](http://php.net/manual/language.oop5.autoload.php).
עובדה זו מבטלת את הצורך בשימוש ב [include](http://php.net/include) או [require](http://php.net/require) לפני השימוש בבקר.
הבקרים (Classes) נטענים על ידי מטודת [Kohana::auto_load], אשר יודעת לעשות את ההמרה משם בקר לשם קובץ:
1. בקרים צריכים להיות ממוקמים בתוך תקיית `classes/` השייכים ל [filesystem](about.filesystem)
2. כל קו תחתי בשם הבקר יהפוך לסלאש '/' ויחפש בתת תקיות בהתאם
3. שם הקובץ צריך להיות כתוב באותיות קטנות
כאשר קוראים לבקר שלא נטען (לדוגמא: `Session_Cookie`) קוהנה תחפש בעזרת פקודת [Kohana::find_file] את הקובץ `classes/session/cookie.php`.
## Custom Autoloaders - טעינה אוטומטית מותאמת אישית
[!!] הגדרת ברירת המחדל של הטעינה האוטומטית נמצאת בקובץ `application/bootstrap.php`.
בקרים נוספים ניתן להוסיף ע"י שימוש ב [spl_autoload_register](http://php.net/spl_autoload_register).

View File

@@ -0,0 +1,99 @@
# General Configuration - הגדרות כלליות
[!!] Finish translating... (todo: description of benefits of static properties for configuration)
## Core Configuration - הגדרות בסיסיות
ההגדרה הראשונה אותה יש לבצע בכל התקנה של קוהנה היא שינוי ההגדרות של [Kohana::init] ב `application/bootstrap.php`.
ההגדרות הן:
שגיאות:
האם להשתמש בטיפול שגיאות ויוצאי דופן פנימי של הקוהנה
ערך ברירת מחדל - True, יש לשנות ל FLASE במידה ולא מעוניינים
פרופיל:
האם להשתמש בדף הפרופיל הסטטיסטי
ערך ברירת מחדל - True
יש לשנות ל FALSE במידה ולא מעוניינים - מומלץ שלא להשתמש באפשרות זו בגרסה הסופית על מנת להסתיר מידע רגיש וטעינה מהירה יותר של הדפים
caching - זכרון מטמון
האם לשמור בזכרון מטמון את המיקום של הקבצים בין בקשות?
ערך ברירת מחדל - True, יש לשנות ל FALSE במידה ולא מעוניינים
פעולה זו מגבירה באופן דרמטי את מהירות הטעינת דפים [Kohana::find_file] ולכן יכולה להיות בעלת השפעה גדולה על רמת הביצועים הכללית של האפליקציה.
חשוב להשתמש באופצייה זו רק בגרסה הסופית או בשביל נסיונות.
`string` charset
: Character set used for all input and output. (Default `"utf-8"`) Should be a character set that is supported by both [htmlspecialchars](http://php.net/htmlspecialchars) and [iconv](http://php.net/iconv).
`string` base_url
: Base URL for the application. (Default `"/"`) Can be a complete or partial URL. For example "http://example.com/kohana/" or just "/kohana/" would both work.
`string` index_file
: The PHP file that starts the application. (Default `"index.php"`) Set to `FALSE` when you remove the index file from the URL with URL rewriting.
`string` cache_dir
: Cache file directory. (Default `"application/cache"`) Must point to a **writable** directory.
## Cookie Settings
There are several static properties in the [Cookie] class that should be set, particularly on production websites.
`string` salt
: Unique salt string that is used to enable [signed cookies](security.cookies)
`integer` expiration
: Default expiration lifetime in seconds
`string` path
: URL path to restrict cookies to be accessed
`string` domain
: URL domain to restrict cookies to be accessed
`boolean` secure
: Only allow cookies to be accessed over HTTPS
`boolean` httponly
: Only allow cookies to be accessed over HTTP (also disables Javascript access)
# Configuration Files
Configuration is done in plain PHP files, which look similar to:
~~~
<?php defined('SYSPATH') or die('No direct script access.');
return array(
'setting' => 'value',
'options' => array(
'foo' => 'bar',
),
);
~~~
If the above configuration file was called `myconf.php`, you could acess it using:
~~~
$config = Kohana::config('myconf');
$options = $config['options'];
~~~
[Kohana::config] also provides a shortcut for accessing individual keys from configuration arrays using "dot paths".
Get the "options" array:
~~~
$options = Kohana::config('myconf.options');
~~~
Get the "foo" key from the "options" array:
~~~
$foo = Kohana::config('myconf.options.foo');
~~~
Configuration arrays can also be accessed as objects, if you prefer that method:
~~~
$options = Kohana::config('myconf')->options;
~~~

View File

@@ -0,0 +1,18 @@
# Cascading Filesystem - מערכת קבצים מדורגת
מערכת הקבצים של Kohana בנוייה ממבנה בסיסי יחיד אשר משוכפל לכל התקיות הנמצאות בנתיב המכונה
include path. להלן צורת המבנה:
1. application - אפליקציה
2. modules, in order added - מודולים, לפי סדר ההופעה
3. system - מערכת
קבצים הנמצאים בתקיות שמעל ה include path מקבלים קדימות על קבצים עם שם זהה, עובדה המאפשרת
לטעון ולדרוס פעולות קבצים על ידי טעינה של קבצים זהים לקבצים הקיימים, רק במיקום גבוה יותר יחסית. לדוגמא:
![Cascading Filesystem Infographic](img/cascading_filesystem.png)
אם יש מצב בו יש לנו קובץ מבט (view) בשם layout.php הממוקם בתקייה application/views וגם קיים בתקייה system/views
הקובץ הממוקם בתקייה application יהיה זה שיוחזר ברגע שננסה לגשת ל layout.php
בגלל שהוא נמצא גבוה יותר בסדר האינקלוד (include path order).
ואם נמחוק את הקובץ הנמצא בתקייה application/views, אז הקובץ שיוחזר יהיה הקובץ השני שממוקם ב system/views.

View File

@@ -0,0 +1,22 @@
# Request Flow - זרימת תהליך בקשה מהשרת
כל אפליקציה שרצה על קוהנה עוברת תהליך זהה בעת ביצוע בקשה של טעינת דף מהשרת
1. האפליקציה נטענת ע"י הרצת הדף הראשי `index.php`
2. מכלילה בתוכה את הדף `APPPATH/bootstrap.php`
3. ה bootstrap קורא ל [Kohana::modules] עם רשימה של המודולים שבשימוש
1. נוצר מערך עם הנתיבים של כל התקיות והקבצים המכילים את המודול
2. בדיקה האם למודול יש קובץ init.php ובמידה וכן לטעון אותו
* כל קובץ init.php יכול לכלול בתוכו routes (ניתובים) חדשים אשר נטענים למערכת
4. [Request::instance] רץ על מנת לבצע את הקריאה
1. בדיקה מול ה routes הקיימים על מנת למצוא את המתאים
2. טעינה של בקר (controller) והעברת הבקשה אליו
3. קריאה לפונקציה [Controller::before] של הבקר המתאים
4. קריאה לפעולה של הבקר לפי ה route
5. קריאה לפונקציה [Controller::after] של הבקר המתאים
5. הצגה של התוצאה
יש אפשרות לשנות את אופן פעולת הבקר עצמו על ידי הפונקציה [Controller::before] בהסתמך על המשתנים בבקשה
[!!] Stub

View File

@@ -0,0 +1,21 @@
# מה זה Kohana?
Kohana היא מערכת בקוד פתוח,
[תשתית פיתוח לרשת](http://wikipedia.org/wiki/Web_Framework)
[מונחה עצמים](http://wikipedia.org/wiki/Object-Oriented_Programming) [MVC](http://wikipedia.org/wiki/Model-View-Controller "Model View Controller")
שנבנתה בשימוש עם
[PHP5](http://php.net/manual/intro-whatis "PHP Hypertext Preprocessor")
ע"י צוות מתנדבים שמטרתה להיות מהירה, מאובטחת, וקטנה.
[!!] Kohana רשומה תחת רישיון ה [BSD license](http://kohanaframework.org/license), אי לכך באפשרותך לעשות כל שימוש באם הוא קוד פתוח, מסחרי, או פרוייקט אישי בלי שום מגבלות משפטיות.
## מה עושה את Kohana כל-כך מצויין?
Anything can be extended using the unique [filesystem](about.filesystem) design, little or no [configuration](about.configuration) is necessary, [error handling](debugging.errors) helps locate the source of errors quickly, and [debugging](debugging) and [profiling](debugging.profiling) provide insight into the application.
To help secure your applications, tools for [XSS removal](security.xss), [input validation](security.validation), [signed cookies](security.cookies), [form](security.forms) and [HTML](security.html) generators are all included. The [database](security.database) layer provides protection against [SQL injection](http://wikipedia.org/wiki/SQL_Injection). Of course, all official code is carefully written and reviewed for security.
## המדריך הזה מעפן!
We are working very hard to provide complete documentation. If you are having trouble finding an answer, check the [unofficial wiki](http://kerkness.ca/wiki/doku.php). If you would like to add or change something in the guide, please [fork the userguide](http://github.com/kohana/userguide), make your changes, and send a pull request. If you are not familar with git, you can also submit a [feature request](http://dev.kohanaframework.org/projects/kohana3/issues) (requires registration).

View File

@@ -0,0 +1,29 @@
# מודל Model View Controller
תבנית Model-View-Controller (בקיצור MVC) היא תבנית עיצוב בהנדסת תוכנה המשמשת להפשטת יישום כלשהו. התבנית מתארת טכניקה לחלוקת היישום לשלושה חלקים, מודל, מבט ובקר, המחוברים ביניהם בצימוד רפוי מונחה אירועים. בדרך זו, התלות הדדית בין ממשק המשתמש לשאר חלקי התוכנה פוחתת, ואת החלקים השונים ניתן לפתח באופן בלתי-תלוי. בנוסף, קל יותר לתחזק את התוכנה וכן לעשות שימוש חוזר בחלקי היישום שהופרדו.
#תיאור התבנית
מקובל לחלק יישום תוכנה למספר שכבות נפרדות: שכבת התצוגה (ממשק משתמש), שכבת התחום העסקי (לעתים נקראת גם "שכבת הלוגיקה העסקית") ושכבת הגישה לנתונים. בתבנית MVC, שכבת התצוגה מחולקת בנוסף למבט ובקר. יש המחשיבים את התבנית כתבנית עיצוב, אך בהשוואה לתבניות עיצוב אחרות, MVC עוסקת במבנים בקנה מידה בינוני-גדול ולכן נחשבת גם כתבנית ארכיטקטורה.
מודל
המודל הוא יצוג מסוים, מוכוון תחום עסקי, של המידע עליו פועל היישום. המודל, למרות הדעה הרווחת, אינו שם אחר לשכבת התחום העסקי והוא נפרד ממנה. תבנית MVC אינה מזכירה במפורש את שכבת הגישה לנתונים, מכיוון ששכבה זו היא מתחת למודל, או נעטפת על ידו.
מבט
תפקידו להמיר את נתוני המודל לייצוג המאפשר למשתמש לבצע פעולת גומלין כלשהי. לרוב מדובר על המרה לממשק משתמש כלשהו. תבנית MVC משמשת רבות ביישומי Web, בהם המבט הוא דף HTML והקוד האוסף מידע דינמי לדף.
בקר
תפקידו לעבד ולהגיב לאירועים המתרחשים במבט, לרוב, כתגובה לפעולה של המשתמש. בעיבוד האירועים, הבקר עשוי לשנות את המידע במודל, באמצעות שפעול שירותים המוגדרים בו. בקרים מורכבים מתבססים לרוב על יישום של תבנית Command.
#אופן הפעולה
ניתן ליישם את תבנית העיצוב MVC בדרכים רבות, אך לרוב היא מיושמת כך:
- הבקר נרשם כ-Event Handler או Callback במבט, בדרך כלל סמוך ליצירת הבקר. כלומר, יישום של שיטת היפוך הפיקוח (IoC). משמע, הבקר יקבל פיקוח כאשר יתרחש אירוע קלט בממשק המשתמש.
- המשתמש מבצע פעולת גומלין כלשהי עם הממשק. לדוגמה, מקליק על כפתור 'הוסף מוצר לעגלה'.
- הבקר שנרשם על המבט מקבל פיקוח ומשפעל שירותים המוגדרים במודל, כדי לשקף את הפעולה שביצע המשתמש. לדוגמה, עדכון 'עגלת הקניות' של המשתמש בפריט נוסף.
- המבט מקבל בצורה עקיפה את החוכמת התצוגה שלו מהבקר, בדרך כלל באמצעות יישום של תבנית Strategy.
- המבט משתמש במודל כדי ליצור את ממשק המשתמש. לדוגמה, המבט מפיק רשימה של הפריטים בעגלה, כפי שאלה מיוצגים כרגע במודל. בין השניים אין קשר הדוק, והמודל אינו מודע לכך שהמבט ניגש למידע המאוחסן בו.
- לעתים, המודל עשוי להודיע על שינויים המתחוללים בו לצדדים שלישיים נוספים, בדרך כלל באמצעות יישום של תבנית Observer.
- ממשק המשתמש ממתין לפעולות נוספות של המשתמש, וכשאלה מתרחשות, התהליך חוזר על עצמו.

View File

@@ -0,0 +1,24 @@
# Debugging - דיבוג
קוהנה כוללת מספר כלים חזקים על מנת לעזור לך לדבג את האפליקציה שלך.
הכלי הבסיסי הוא [Kohana::debug].
כלי זה יציג את כל המשתנים או משתנה מסויים מכל סוג שהוא, בדומה ל [var_export](http://php.net/var_export) או [print_r](http://php.net/print_r), רק שקוהנה יודעת להשתמש ב HTML להצגה נוחה יותר
~~~
// הצג נתונים אודות המשתנים $foo ו- $bar
echo Kohana::debug($foo, $bar);
~~~
קוהנה גם מאפשרת בקלות לצפות בקוד המקור של קובץ מסויים ע"י שימוש ב [Kohana::debug_source].
~~~
// הצגה של שורה מסויימת מקובץ מסויים
echo Kohana::debug_source(__FILE__, __LINE__);
~~~
במידה ואתה מעוניין להציג מידע על האפליקציה מבלי לחשוף את התקיית התקנה, ניתן להשתמש ב [Kohana::debug_path]:
~~~
// מציג "APPPATH/cache" במקום הנתיב האמיתי
echo Kohana::debug_file(APPPATH.'cache');
~~~

View File

@@ -0,0 +1,29 @@
# Error/Exception Handling - טיפול בשגיאות וחריגים
Kohana מאפשרת לנו טיפול נוח בשגיאות וחריגים על ידי הפיכת השגיאות לחריגים בעזרת ה
[ErrorException](http://php.net/errorexception) של PHP.
Kohana יודעת להציג נתונים רבים אודות השגיאות והחריגים שזיהתה:
1. Exception class -
2. Error level - רמת השגיאה
3. Error message - הודעת שגיאה
4. Source of the error, with the error line highlighted - מקור השגיאה עם סימון השורה הבעייתית
5. A [debug backtrace](http://php.net/debug_backtrace) of the execution flow - אפשרות מעקב אחורנית אודות הקריאות השונות שבוצעו עד לקבלת השגיאה על מנת לעקוב לאחור אחר מקור השגיאה
6. Included files, loaded extensions, and global variables - קבצים שנכללו, סיומות שנטענו ומשתנים גלובאלים
## דוגמא להודעת שגיאה
לחץ על אחד הקישורים הממוספרים על מנת להציג או להסתיר את המידע הנוסף
<div>{{userguide/examples/error}}</div>
## Disabling Error/Exception Handling - ביטול הטיפול בשגיאות וחריגים
במידה וברצונך לבטל את הטיפול בשגיאות, ניתן לעשות זאת בעת הקריאה
[Kohana::init] בצורה הבאה:
~~~
Kohana::init(array('errors' => FALSE));
~~~
חשוב לזכור שבדרך כלל נרצה שהשגיאות המפורטות יופיעו רק בעבודה לוקאלית ולא באתר אונליין

View File

@@ -0,0 +1,21 @@
# Profiling - פרופיל סטטיסטי לכל דף
קוהנה מאפשרת בקלות לצפות בסטטיסטיקה אודות האפליקציה:
1. קריאות למטודות קוהנה
2. בקשות
3. שאילתות שבוצעו על מסד הנתונים
4. ממוצע זמני פעולה של האפליקציה
## דוגמא
ניתן לאסוף ולהציג את הסטטיסטיקות בכל רגע נתון:
~~~
<div id="kohana-profiler">
<?php echo View::factory('profiler/stats') ?>
</div>
~~~
## התוצאה:
{{profiler/stats}}

View File

@@ -0,0 +1,26 @@
1. **מתחילים**
- [ מה זה Kohana?](about.kohana)
- [מוסכמות וסיגנון](about.conventions)
- [התקנה](about.install)
- [שידרוג](about.upgrading)
- [הגדרות](about.configuration)
- [Model View Controller הסבר על](about.mvc)
- [מערכת קבצים](about.filesystem)
- [Autoloading - טעינה אוטומטית](about.autoloading)
- [Request זרימת](about.flow)
- [API דפדפן](api)
2. **ערכות לימוד**
- [Hello, World](tutorials.helloworld)
- [Routes, URLs, and Links](tutorials.urls)
- [Databases](tutorials.databases)
- [ORM](tutorials.orm)
- [עבודה עם Git](tutorials.git)
3. **אבטחה**
- [XSS](security.xss)
- [Validation - ואלידציה](security.validation)
- [Cookies - עוגיות](security.cookies)
- [Database - מסד נתונים](security.database)
4. **ניפוי באגים**
- [קוד](debugging.code)
- [טיפול בשגיאות](debugging.errors)
- [פרופיל](debugging.profiling)