From a4a1cc36476568ef83387581a6f17baf2027ba4a Mon Sep 17 00:00:00 2001
From: kabayan <>
Date: Fri, 17 Aug 2007 10:06:40 +0000
Subject: First attemp is failed. retry
---
.../pages/Fundamentals/id/Applications.page | 55 +++++++++
.../pages/Fundamentals/id/Architecture.page | 13 +++
.../pages/Fundamentals/id/Components.page | 128 +++++++++++++++++++++
.../protected/pages/Fundamentals/id/Controls.page | 51 ++++++++
.../protected/pages/Fundamentals/id/Hangman.page | 14 +++
.../protected/pages/Fundamentals/id/Modules.page | 50 ++++++++
.../protected/pages/Fundamentals/id/Pages.page | 23 ++++
.../protected/pages/Fundamentals/id/Services.page | 34 ++++++
.../pages/Fundamentals/id/applifecycles.gif | Bin 0 -> 31200 bytes
.../pages/Fundamentals/id/applifecycles.vsd | Bin 0 -> 220672 bytes
.../protected/pages/Fundamentals/id/classtree.gif | Bin 0 -> 18320 bytes
.../protected/pages/Fundamentals/id/classtree.vsd | Bin 0 -> 72704 bytes
.../protected/pages/Fundamentals/id/directory.gif | Bin 0 -> 3967 bytes
.../protected/pages/Fundamentals/id/lifecycles.gif | Bin 0 -> 60897 bytes
.../protected/pages/Fundamentals/id/lifecycles.vsd | Bin 0 -> 225280 bytes
.../pages/Fundamentals/id/objectdiagram.gif | Bin 0 -> 7700 bytes
.../pages/Fundamentals/id/objectdiagram.vsd | Bin 0 -> 159744 bytes
17 files changed, 368 insertions(+)
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/Applications.page
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/Architecture.page
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/Components.page
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/Controls.page
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/Hangman.page
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/Modules.page
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/Pages.page
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/Services.page
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/applifecycles.gif
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/applifecycles.vsd
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/classtree.gif
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/classtree.vsd
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/directory.gif
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/lifecycles.gif
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/lifecycles.vsd
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/objectdiagram.gif
create mode 100644 demos/quickstart/protected/pages/Fundamentals/id/objectdiagram.vsd
(limited to 'demos')
diff --git a/demos/quickstart/protected/pages/Fundamentals/id/Applications.page b/demos/quickstart/protected/pages/Fundamentals/id/Applications.page
new file mode 100644
index 00000000..45ab2359
--- /dev/null
+++ b/demos/quickstart/protected/pages/Fundamentals/id/Applications.page
@@ -0,0 +1,55 @@
+
+Aplikasi adalah turunan dari TApplication atau asal kelasnya. Ia mengatur modul yang menyediakan fungsionalitas berbeda dan diambil bila diperlukan. Ia menyediakan layanan bagi pengguna-akhir. Ia adalah tempat utama untuk menyimpan berbagai parameter dalam sebuah aplikasi. Dalam aplikasi PRADO, turunan aplikasi adalah satu-satunya obyek yang secara global dapat diakses melalui panggilan fungsi Prado::getApplication().
+
+Aplikasi dikonfigurasi melalui konfigurasi aplikasi. Biasanya dibuat dalam naskah entri seperti berikut,
+
+Aplikasi PRADO minimal berisi dua file: file entri dan file template halaman. Ini harus diatur sebagai berikut,
+
+Produk aplikasi PRADO biasanya membutuhkan file lebih banyak. Ia dapat menyertakan file konfigurasi aplikasi bernama application.xml di bawah path basis aplikasi protected. Halaman bisa diatur dalam direktori, beberapa diantaranya dapat berisi file konfigurasi halaman bernama config.xml. Untuk lebih jelasnya, silahkan lihat seksi konfigurasi.
+
+Menyebarkan aplikasi PRADO sebagian besar terkait dengan meng-copy direktori. Sebagai contoh, untuk menyebarkan aplikasi minimal di atas ke server lain, ikuti langkah-langkah berikut,
+
+Seperti masa hidup halaman, aplikasi juga mempunyai masa hidup. Modul aplikasi dapat meregistrasi event masa hidup. Ketika aplikasi mencapai masa hidup tertentu dan memunculkan event terkait, metode modul teregistrasi akan di panggil secara otomatis. Modul yang disertakan dalam rilis PRADO, seperti TAuthManager, menggunakan cara ini untuk melasanakan tujuannya.
+
+Masa hidup aplikasi dapat digambarkan sebagai berikut,
+
+PRADO adalah kerangka kerja presentasi utama, meskipun tidak dibatasi demikian. Kerangka kerja terfokus pada pembuatan pemrograman Web, yang banyak berkaitan dengan interaksi pengguna, menjadi berbasis-komponen dan kendali-event agar pengembang itu bisa lebih produktif. Susunan kelas berikut menggambarkan beberapa kelas utama yang disediakan oleh PRADO,
+
+Ketika aplikasi PRADO memproses permintaan halaman, diagram obyek statisnya dapat dilihat sebagai berikut,
+
+Komponen adalah turunan dari TComponent atau kelas anaknya. Basis kelas TComponent menerapkan mekanisme properti dan event komponen.
+
+Properti komponen dapat dilihat sebagai variabel public yang menjelaskan aspek tertentu dari komponen seperti warna latar belakang, besar font, dll. Properti didefinisikan dengan keberadaan metode penentu dan/atau pengambil dalam kelas komponen. Sebagai contoh, dalam TControl, kami mendefinisikan properti ID menggunakan metode pengambil dan penentu berikut,
+
+Untuk mendapatkan atau menetapkan properti ID, lakukan seperti berikut, seperti bekerja dengan sebuah variabel,
+
+Properti hanya-baca jika metode pengambil tetapi tidak untuk metode penentu. Karena nama metode PHP adalah sensitif-huruf, nama properti juga sensitif-huruf. Kelas komponen mewariskan seluruh properti kelas leluhurnya.
+
+Subproperti adalah properti dari beberapa properti tipe-obyek. Sebagai contoh, TWebControl mempunyai properti Font yang merupakan tipe TFont. Kemudian properti Name dari Font dirujuk sebagai subproperti (dengan memperhatikan TWebControl).
+
+Untuk mendapatkan atau menentukan subproperti Name, gunakan metode beriktu,
+
+Component events are special properties that take method names as their values. Attaching (setting) a method to an event will hook up the method to the places at which the event is raised. Therefore, the behavior of a component can be modified in a way that may not be foreseen during the development of the component.
+
+A component event is defined by the existence of a method whose name starts with the word on. The event name is the method name and is thus case-insensitve. For example, in TButton, we have
+
+Namespace merujuk ke pengelompokan logis dari beberapa nama kelas agar dapat dibedakan dari nama kelas lain meskipun jika namanya sama. Karena PHP pada hakekatnya tidak mendukung namespace, anda tidak bisa membuat turunan dari dua kelas yang mempunyai nama sama tapi dengan definisi berbeda. Untuk membedakan dari kelas didefinisikan pengguna, semua kelas PRADO diawali dengan huruf 'T' (berarti 'Type'). Para pengguna disarankan untuk tidak menamai kelasnya seperti ini. Sebaiknya mengawali nama kelasnya dengan huruf yang lainnya.
+
+Namespace dalam PRADO dianggap sebagai direktori yang berisi satu atau beberapa file kelas. Sebuah kelas dapat ditetapkan tanpa dwimakna menggunakan namespace demikian diikuti oleh nama kelas. Setiap namespace dalam PRADO ditetapkan dalam format berikut,
+Aplikasi
+Organisasi Direktori
+
+
+
+
+Penyebaran Aplikasi
+
+
+
+Masa Hidup Aplikasi
+
+
+
Arsitektur
+
+
+
+
+
Komponen
+Properti Komponen
+Subproperti
+Event Komponen
+Namespace
+
+Untuk menggunakan namespace dalam kode, lakukan seperti berikut,
+
+Untuk lebih jelasnya mengenai mendefinisikan alias path, lihat seksi konfigurasi aplikasi. +
+ ++Penurunan komponen berarti membuat turunan dari kelas komponen. Ada dua tipe penurunan komponen: penurunan statis dan dinamis. Komponen yang dibuat masing-masing disebut komponen statis dan komponen dinamis. +
+ +
+Penurunan komponen dinamis berarti membuat turunan komponen dalam kode PHP. Itu sama dengan apa yang umum dirujuk pembuatan obyek dalam PHP. Sebuah komponen dapat dibuat secara dinamis menggunakan salah satu dari dua metode berikut dalam PHP,
+
+Penurunan komponen statis adalah mengenai pembuatan komponen melalui konfigurasi. Pekerjaan pembuatan sebenarnya dilakukan oleh kerangka kerja PRADO. Sebagai contoh, dalam konfigurasi aplikasi, seseorang dapat mengkonfigurasi sebuah modul untuk diambil ketika aplikasi dijalankan. Selanjutnya modul adalah komponen statis yang dibuat oleh kerangka kerja. Penurunan komponen statis lebih umum digunakan dalam template. Setiap tag komponen dalam sebuah template menetapkan komponen yang akan dibuat secara otomatis oleh kerangka kerja ketika template diambil. Sebagai contoh, dalam sebuah template halaman, tag berikut akan membawa ke pembuatan komponen TButton pada halaman,
+
+Kontrol adalah turunan dari kelas TControl atau asal sub kelasnya. Kontrol adalah komponen yang didefinisikan sebagai tambahan pada antarmuka pengguna. Kelas basis TControl mendefinisikan hubungan leluhur-anak diantara kontrol yang mencerminkan pengurungan hubungan diantara elemen antarmuka pengguna. +
+ ++Kontrol dikaitkan satu sama lain melalui hubungan leluhur-anak. Setiap kontrol leluhur dapat memiliki beberapa kontrol anak. Kontrol leluhur bertugas terhadap transisi keadaan dari kontrol anaknya. Hasil dari kontrol anak biasanya dipakai untuk mengatur penampilan kontrol leluhur. Hubungan leluhur-anak membawa kontrol bersama ke dalam susunan kontrol. Halaman ada di akar dari susunan yang penampilannya di berikan kepada pengguna-akhir. +
+
+Hubungan leluhur-anak biasanya dilakukan oleh kerangka kerja melalui template. Dalam kode, anda dapat menetapkan kontrol secara eksplisit sebagai anak dari yang lainnya menggunakan salah satu metode berikut,
+
+Setiap kontrol mempunyai properti ID yang dapat secara unik dapat mengidentifikasi dirinya sendiri diantara kontrol keluarganya. Sebagai tambahan, setiap kontrol mempunyai UniqueID dan ClientID yang dapat dipakai untuk mengidentifikasi kontrol secara global dalam susunan di mana kontrol berada. UniqueID dan ClientID sangat mirip. Pembentuk dipakai oleh kerangka kerja guna menentukan lokasi dari kontrol terkait dalam susunan, sementara yang kedua sebagian besar dipakai pada sisi klien sebagai ID tag HTML. Secara umum, anda tidak boleh bergantung pada bentuk eksplisit UniqueID atau ClientID. +
+ ++Setiap kontrol mempunyai wadah penamaan yang mana kontrol membuat ruang nama (namespace) unik untuk membedakan antara kontrol dengan ID yang sama. Sebagai contoh, kontrol TRepeater membuat multipel item masing-masing mempunyai kontrol anak dengan ID yang sama. Untuk membedakan kontrol anak ini, setiap item bertindak sebagai wadah penamaan. Oleh karena itu, kontrol anak dapat diidentifikasi secara unik menggunakan wadah penamaan ID bersama dengan ID-nya sendiri. Seperti yang mungkin sudah anda mengerti, UniqueID dan ClientID bergantung pada wadah penamaan. +
++Kontrol dapat bertindak sebagai wadah penamaan jika ia menerapkan antarmuka INamingContainer. +
+ ++HTTP adalah protokol tidak berkondisi, berarti ia tidak menyediakan fungsionalitas untuk mendukung interaksi berlanjut antara pengguna dan server. Setiap permintaan dianggap sebagai diskrit dan berdiri sendiri dari yang lainnya. Aplikasi Web, sering perlu untuk mengetahui apa yang telah dilakukan pengguna dalam permintaan sebelumnya. Selanjutnya orang memperkenalkan sesi guna membantu mengingat informasi kondisi seperti itu. +
++PRADO meminjam konsep viewstate dan controlstate dari Microsoft ASP.NET guna menyediakan tambahan mekanisme pemrograman berkondisi. Penyimpanan nilai dalam viewstate atau controlstate mungkin tersedia untuk permintaan berikutnya jika permintaan baru dari submisi (disebut postback) ke halamanyang sama oleh pengguna yang sama. Perbedaan antara viewstate dan controlstate adalah bahwa pembentuk dapat dimatikan saat yang kemudian tidak bisa. +
+
+Viewstate dan controlstate diterapkan dalam TControl. Biasanya dipakai untuk mendefinisikan berbagai properti kontrol. Untuk menyimpan dan mengambil nilai dari viewstate atau controlstate, gunakan metode berikut,
+
+Setelah melihat aplikasi "Hello World", sekarang kita membuat aplikasi yang lebih rumit disebut "Permainan Hangman". Dalam permainan ini, pemain diminta untuk menebak kata, satu huruf setiap waktu. Jika dia menebak huruf dengan benar, huruf akan ditampilkan dalam kata. Pemain dapat melanjutkan untuk menebak selama angka kesalahannya dalam batas yang sudah ditetapkan. Pemain memenangkan permainan jika menemukan kata dalam batas kesalahan, atau dia kalah. +
+
+Untuk memfasilitasi pembangunan permainan ini, kami perlihatkan diagram transisi keadaan dari proses permainan sebagai berikut,
+
+Untuk dilanjutkan...
+
+Modul adalah turunan dari kelas yang menerapkan antarmuka IModule. Umumnya sebuah modul didesain untuk fungsionalitas tertentu yang dapat disertakan ke dalam aplikasi PRADO dan berbagi dengan semua komponen dalam aplikasi. +
++PRADO menggunakan konfigurasi untuk menetapkan apakah mengambil sebuah modul, mengambil modul jenis apa, dan bagaimana untuk menginisialisasi modul yang diambilnya. Para pengembang dapat mengganti modul inti dengan implementasinya sendiri melalui konfigurasi aplikasi, atau mereka dapat menulis modul baru guna menyediakan fungsionalitas tambahan. Sebagai contoh, modul dapat dikembangkan untuk menyediakan logika database umum pada satu atau beberapa halaman. Untuk lebih jelasnya, silahkan lihat konfigurasi. +
++Ada tiga modul inti yang diambil secara standar kapan saja aplikasi dijalankan. Ketiganya adalah modul permintaan, modul respon, dan modul pengendali kesalahan. Sebagai tambahan, modul sesi diambil saat ia digunakan dalam aplikasi. PRADO menyediakan implementasi standar untuk semua modul ini. Modul kustom dapat dikonfigurasi atau dikembangkan guna mengganti atau menambah modul inti ini. +
+ + ++Modul permintaan menyediakan penyimpanan dan skema akses untuk permintaan pengguna yang dikirim melalui HTTP. Permintaan pengguna datang dari beberapa sumber, termasuk URL, data post, data sesi, data cookie, dll. Data ini semuanya dapat diakses melalui modul permintaan. Standarnya PRADO menggunakan THttpRequest sebagai modul permintaan. Modul permintaan dapat diakses melalui properti Request dari aplikasi dan kontrol. +
+ + ++Modul respon menerapkan mekanisme untuk mengirimkan output ke pengguna klien. Modul respon dapat dikonfigurasi guna mengontrol bagaimana output di-cache pada sisi klien. Standarnya PRADO menggunakan THttpResponse sebagai modul respon. Modul respon dapat diakses melalui properti Response dari aplikasi dan kontrol. +
+ + ++Modul sesi melapisi fungsionalitas terkait dengan penanganan sesi pengguna. Modul sesi secara otomatis diambil saat aplikasi menggunakan sesi. Standarnya PRADO menggunakan THttpSession sebagai modul sesi, yang merupakan pelapis sederhana dari fungsi sesi yang disediakan oleh PHP. Modul sesi dapat diakses melalui properti Session dari aplikasi dan kontrol. +
+ + ++Modul pengendali kesalahan dipakai untuk menangkap dan memproses semua kondisi kesalahan dalam sebuah aplikasi. PRADO menggunakan TErrorHandler sebagai modul pengendali kesalahan. Ia menangkap semua peringatan PHP, perhatian dan kekecualian, dan ditampilkan dalam bentuk yang tepat bagi pengguna-akhir. Modul pengendali kesalahan dapat diakses melalui properti ErrorHandler dari turunan aplikasi. +
+ + ++PRADO dirilis dengan beberapa modul lebih disamping yang inti. Ini termasuk modul cache (TSqliteCache dan TMemCache), modul manajemen pengguna (TUserManager), modul otentikasi dan otorisasi (TAuthManager), dll. +
++Ketika TPageService diminta, ia juga mengambil modul tertentu untuk layanan halaman, termasuk manajer asset (TAssetManager), manajer template (TTemplateManager), manajer tema/skin (TThemeManager). +
++Modul kustom dan modul inti semuanya dapat dikonfigurasi melalui konfigurasi. +
+ ++Halaman adalah kontrol teratas yang tidak mempunyai leluhur. Presentasi halaman ditampilkan secara langsung ke pengguna-akhir. Pengguna mengakses halaman dengan mengirimkan permintaan layanan halaman. +
++Setiap halaman harus mempunyai file template. Akhiran nama file harus .page. Nama file (tanpa akhiran) adalah nama halaman. PRADO akan mencoba mencari file kelas halaman di bawah direktori yang berisi file template halaman. File kelas halaman tersebut harus mempunyai nama file yang sama (diakhiri dengan .php) seperti file template. Jika file kelas tidak ditemukan, halaman akan mengambil kelas TPage. +
+ ++Submisi formulir disebut postback jika submisi dibuat untuk halaman yang berisi formulir. Postback dapat dianggap sebagai kondisi di sisi klien, dimunculkan oleh pengguna. PRADO akan mencoba mengidentifikasi kontrol mana pada sisi server untuk postback kondisi. Jika seseorang menentukan misalnya, TButton, kami menyebutnya pengirim event postback yang akan menterjemahkan event postback ke dalam beberapa event sisi-server tertentu (contoh event OnClick dan OnCommand untuk TButton). + +
+ +
+Mengerti masa hidup halaman adalah penting untuk menguasai pemrograman PRADO. Masa hidup halaman merujuk ke transisi kondisi dari sebuah halaman saat melayani halaman ini bagi pengguna-akhir. Ini dapat digambarkan dalam grafik kondisi berikut,
+
+
+Layanan adalah turunan dari kelas yang menerapkan antarmuka IService. Setiap jenis layanan memproses tipe permintaan tertentu pengguna. Sebagai contoh, respon layanan halaman terhadap permintaan pengguna untuk halaman PRADO. +
+
+Sebuah layanan diidentifikasi secara unik dengan properti ID-nya. Standarnya ketika THttpRequest dipakai sebagai modul permintaan, nama variabel GET digunakan untuk mengidentifikasi layanan mana yang sedang diminta oleh pengguna. Jika nama variabel GET sama dengan beberapa ID layanan, permintaan dianggap untuk layanan itu, dan nilai dari variabel GET dikirimkan sebagai parameter layanan. Untuk layanan halaman, nama variabel GET harus page. Sebagai contoh, URKL berikut meminta halaman Fundamentals.Services,
+
+Para pengembang dapat menerapkan layanan tambahan untuk aplikasinya. Untuk menjadikan layanan agar tersedia, konfigurasi itu dalam konfigurasi aplikasi. +
+ ++PRADO menerapkan TPageService untuk melayani permintaan halaman pengguna. Halam disimpan di bawah direktori yang ditetapkan oleh properti BasePath dari layanan halaman. Properti standarnya ke direktori pages di bawah path basis aplikasi. Anda boleh mengubah standar ini dengan mengkonfigurasi layanan dalam konfigurasi aplikasi. +
++Halaman disusun ke dalam direktori di bawah BasePath. Dalams setiap direktori, di sana ada file konfigurasi bernama config.xml, yang berisi konfigurasi yang hanya efektif ketika halaman di bawah direktori atau sub direktori itu diminta. Untuk lebih jelasnya, lihat seksi konfigurasi halaman. +
+
+Parameter layanan untuk layanan halaman merujuk pada halaman yang sedang diminta. Parameter seperti Fundamentals.Services merujuk pada halaman Services di bawah direktori <BasePath>/Fundamentals. Jika parameter tersebut tidak ada dalam permintaan, dianggap sebagai halaman standar bernama Home. Menggunakan THttpRequest sebagai modul permintaan (default), URL berikut masing-masing akan meminta halaman Home, About dan Register,
+