cakephp-3.0 ट्यूटोरियल
Cakephp-3.0 के साथ आरंभ करना
खोज…
टिप्पणियों
इस अनुभाग में यह बताया गया है कि क्या केक-3.0 क्या है, और क्यों एक डेवलपर इसका उपयोग करना चाहता है।
यह केकफ-3.0 के भीतर किसी भी बड़े विषयों का उल्लेख करना चाहिए, और संबंधित विषयों के लिए लिंक करना चाहिए। चूंकि केकफ-3.0 के लिए दस्तावेज़ीकरण नया है, इसलिए आपको उन संबंधित विषयों के प्रारंभिक संस्करण बनाने की आवश्यकता हो सकती है।
स्थापना Cakephp 3.X
आवश्यकताएँ:
- PHP 5.6.0 या उससे अधिक mbstring PHP एक्सटेंशन (WAMP / XAMPP में डिफ़ॉल्ट काम करता है, यदि नहीं तो इसे सक्षम करें)
- intl PHP एक्सटेंशन (WAMP / XAMPP में उपलब्ध), आपको इसे सक्षम करना होगा
php.ini से) - CakePHP विभिन्न वेब सर्वरों जैसे कि nginx, पर चलेगा
- LightHTTPD, या Microsoft IIS।
शुरू करने से पहले आपको यह सुनिश्चित करना चाहिए कि आपका PHP संस्करण अद्यतित है:
php -v
Cakephp 3 फ्रेमवर्क स्थापित करने के लिए संगीतकार का उपयोग करें,
संगीतकार स्थापना के लिए आधिकारिक तौर पर समर्थित तरीका है, इसलिए संगीतकार डाउनलोड करें, संगीतकार (विंडोज / लिनक्स / मैक)
इसे स्थापित करें
php composer.phar create-project --prefer-dist cakephp/app my_app_name
एक बार कम्पोज़र एप्लिकेशन के कंकाल और कोर केकपीएचपी लाइब्रेरी को डाउनलोड करने के बाद खत्म हो जाता है, तो आपके पास कंपोज़र के माध्यम से एक कामकाजी केकपीएचपी एप्लीकेशन होना चाहिए। अपने स्रोत कोड के बाकी हिस्सों के साथ कंपोजर.जेसन और कंपोजर.लोक फ़ाइलों को रखना सुनिश्चित करें।
या cakephp स्थापित करने के लिए इस सबसे आसान तरीके का पालन करें
Bellow चरणों का पालन करें,
- इस Git रिपॉजिटरी में जाएं
- आसान स्थापना के लिए केकडीसी / ओवन डाउनलोड करें
- LOCALHOST के अंदर ज़िप फ़ाइल निकालें
- उस फ़ोल्डर को 777 अनुमति दें
- फ़ाइल ओवन चलाएं। पीएचपी (फ़ोल्डर के अंदर उपलब्ध)
- बहुत सारे विकल्प के साथ एक पेज खुलेगा, अपनी पसंद के अनुसार विकल्प चुनें
- छवि पर क्लिक करें और वापस बैठें। आपका प्रोजेक्ट कुछ मिनटों में स्थापित हो जाएगा
निष्पादित:
bin/cake server
डिफ़ॉल्ट रूप से, बिना किसी तर्क के, यह आपके आवेदन को http: // localhost: 8765 / पर सेवा देगा।
अपने ब्राउज़र, http://example.com/ या http: // localhost: 8765 / पर यह फायर करें। इस बिंदु पर, आपको CakePHP के डिफ़ॉल्ट घर के साथ प्रस्तुत किया जाएगा, और एक संदेश जो आपको आपके वर्तमान डेटाबेस कनेक्शन की स्थिति बताता है और आप अपने पहले आवेदन के लिए तैयार हैं।
स्थापना और सेटअप अनुसरण के बारे में अधिक जानकारी के लिए, Cakephp 3.X स्थापना
परियोजना की स्थापना
सबसे पहले, आपको डेटाबेस के साथ काम करने के लिए mysql
, phpMyAdmin
, HeidiSQL
या अन्य उपकरणों के साथ डेटाबेस बनाना चाहिए और उपयोगकर्ता को नया बनाने देना चाहिए।
उस प्रक्रिया के बाद, आपको प्रोजेक्ट के लिए डेटाबेस तक पहुंच प्रदान करनी चाहिए।
आपको फ़ाइल /path/to/your/project/config/app.php
में जाने की आवश्यकता है, फिर Datasources
default
। उस ऐरे में, आपको localhost
(डिमांड पर), user
, password
और database
बदलने की जरूरत है।
ओ टू योर ब्राउज़र एंड रिफ्रेश पेज। DB समस्या को जाना चाहिए और बाईं ओर Green Tick
दिखाना चाहिए।
किया हुआ! आपका पहला प्रोजेक्ट स्थापित हो गया है!
पहले 'हैलो वर्ल्ड!' CakePHP 3.x (परिचय भाग 1) के साथ आवेदन
CakePHP 3.x में controllers
, models
, views
और अन्य रूपरेखा परिभाषित वस्तुओं को bake
करने की क्षमता है।
नोट : यदि आपको
Laravel
ढांचे के साथ कुछ अनुभव हुआ है, तोartisan
घटकbake
समान है।
bake
आवेदन bin
फ़ोल्डर में स्थित है; निम्नलिखित उपलब्ध आदेशों में से कुछ हैं:
-
bin/cake bake shell %shellName%
- सेंकना करने के लिए शेलक्लास -
bin/cake bake controller %controllerName%
- नियंत्रक वर्ग सेंकना करने के लिए -
bin/cake bake model %modelName%
- मॉडल + इकाई वर्ग सेंकना करने के लिए -
bin/cake bake view %viewName%
- दृश्य टेम्पलेट सेंकना करने के लिए -
bin/cake bake all %className%
- को नियंत्रक, मॉडल + इकाई, डेवलपर के लिए देखें।
नोट : यदि आप अपने डेटाबेस में कोई टेबल नहीं रखते हैं तो आप
bake model
कोbake model
नहीं कर पाएंगे
नोट : यदि आप
bake all
घटकों कोbake all
हैं, तो आपको पूर्व-निर्धारितCRUD
कार्यों के साथControllers
मिलेंगे।
पहले 'हैलो वर्ल्ड!' CakePHP 3.x (डेटाबेस टेबल माइग्रेशन। भाग 2) के साथ आवेदन
यदि आप चाहें तो आप आसानी से अपने डेटाबेस के लिए टेबल create
सकते हैं या उन्हें drop
हैं। यदि आप ऐसा करना चाहते हैं, तो आपको यह सीखना चाहिए कि वांछित डेटाबेस के लिए Migrations
कैसे लिखना है।
माइग्रेशन फ़ाइलों को config/Migrations
फ़ोल्डर में स्थित होना चाहिए। फ़ाइल नाम अगले स्वरूपों में हो सकते हैं:
-
YYYYMMDDHHIISS_(Create|Alter|Delete)AdministratorsTable.php
-
(1-9){1,}_(Create|Alter|Delete)AdministratorsTable.php
<?php
use Migrations\AbstractMigration;
use Cake\Log\Log;
/**
* Class AdministratorsTableMigration
*/
class AdministratorsTableMigration extends AbstractMigration
{
/**
* @var string
*/
private $_tableName;
/**
* @var string
*/
private $_tablePrefix;
public function init()
{
$this->_tableName = '"Administrators"';
$this->_tablePrefix = 'administrators';
}
public function up()
{
Log::info("Trying to create {$this->_tableName} table");
$administratorsTable = $this->table($this->_tablePrefix);
if ($administratorsTable->exists()) {
return Log::warning("Table {$this->_tableName} already exists");
}
$administratorsTable
->addPrimaryKey('id')
->addColumn('username', 'char', [
'length' => 25,
'null' => false
])
->addColumn('password', 'char', [
'length' => 255,
'null' => false
])
->addColumn('email', 'char', [
'length' => 50,
'null' => false
])
->addColumn('first_name', 'char', [
'length' => 50,
'null' => false
])
->addColumn('last_name', 'char', [
'length' => 50,
'null' => false
])
->addColumn('avatar', 'char', [
'length' => 255,
'default' => '/img/no-avatar.png'
])
->addColumn('active', 'boolean', [
'default' => 0
])
->addTimestamps()
->create();
return Log::notice("Table {$this->_tableName} has been created");
}
public function down()
{
if ($this->table($this->_tablePrefix)->exists()) {
$this->table($this->_tablePrefix)->drop();
return Log::info("Table {$this->_tableName} has been dropped");
}
return Log::warning("Table {$this->_tableName} does not exists");
}
}
यदि आप माइग्रेशन चलाना चाहते हैं, तो आपको अगली कमांड चलाने की आवश्यकता है:
bin/cake migrations migrate
तालिका (-s) बनाने के लिए bin/cake migrations migrate
।
यदि आप रोलबैक करना चाहते हैं:
bin/cake migrations rollback
- पिछले माइग्रेशन को वापस कर देगा, जहां drop()
फ़ंक्शन मौजूद है
bin/cake migrations (-t|--target) all
- सभी माइग्रेशन को वापस कर देगा, जहां drop()
फ़ंक्शन मौजूद है
पहले 'हैलो वर्ल्ड!' CakePHP 3.x (नियंत्रकों, प्रतिक्रिया, दृश्य। भाग 3) के साथ आवेदन
एक नियंत्रक बनाना चाहते हैं? इसे बनाने के 2 तरीके हैं:
- मैन्युअल रूप से (आपको
src/Controller
में नियंत्रक फ़ाइल मैन्युअल रूप से बनाने के लिए मजबूर किया जाएगा) - बेक्ड (रनिंग
bin/cake bake controller %controllerName%
सीएलआई सेbin/cake bake controller %controllerName%
कमांड)
यदि आप इसे मैन्युअल रूप से बनाना चाहते हैं, तो src/Controller
फ़ोल्डर पर जाएं और अगले पैटर्न का पालन करते हुए फ़ाइल बनाएं:
([AZ]{1}[az]{1,})Controller.php
उस नियंत्रक में, आपको namspace
को परिभाषित करना चाहिए, जिसका उपयोग किया जाएगा:
<?php
namespace App\Controller;
तब आपको इसे फ़ाइल नाम, पूर्व नाम देना चाहिए। AdminiController:
use App\Controller\AppController;
class AdminController extends AppController{}
इस वर्ग के अंदर, आपको अपना पहला तरीका बनाना चाहिए, पूर्व। login
:
public function login(){}
यदि आप अपने ब्राउजर में टाइप करेंगे: http://{{project-name}}/admin/login
यह मिसिंग टेंपरेचर की एरर फेंक देगा। इस समस्या को हल कैसे करें?
आपको src/Template/Admin/
login.ctp
फाइल के तहत बनाना होगा।
नोट : * .ctp वाइल्डकार्ड - केक टेम्प्लेट फ़ाइल है, जो नियंत्रक के माध्यम से आपके द्वारा सेटिंग डेटा को पास / रेंडर करने के लिए उपयोग कर रहा है।
उस फ़ाइल में 'हैलो वर्ल्ड!' टाइप करें। जहाँ आप चाहते हैं, टेम्पलेट त्रुटि के साथ पृष्ठ ताज़ा करें और आपको आपकी World
मिल जाएगी, आपको बधाई!
नोट : यदि आपने एक को परिभाषित नहीं किया है, तो डिफ़ॉल्ट रूप से,
src/Template/Layout/default.ctp
लेआउट के रूप में प्रस्तुत कर रहा है
PHP 7 और SELinux सक्षम के साथ CentOS 7 पर CakePHP 3.4 स्थापित करना
यह वही है जो मैंने एक नए स्थापित न्यूनतम सेंटोस 7 पर केकपीएचपी स्थापित करने के लिए किया था
- VirtualBox में एक CentOS-7-x86_64-Minimal-1611.iso स्थापित, दो नेटवर्क इंटरफेस: पहला NAT, दूसरा होस्ट-ओनली
- ONBOOT सेट करें / हाँ में / आदि / sysconfig / नेटवर्क-स्क्रिप्ट / ifcfg-enp0s3
- रिबूट
- यम अद्यतन
- yum नेट-टूल्स स्थापित करें (ifconfig और netstat पाने के लिए)
- yum इंस्टॉल wget
- yum यम-बर्तन स्थापित करें
- wget -q http://rpms.remirepo.net/enterprise/remi-release-7.rpm
- wget -q https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
- rpm -Uvh remi-release -rrpm epel-release-latest-7.noarch.rpm
- yum-config-manager -enable remi-php71
- yum स्थापित php
- systemctl httpd को सक्षम करें
- systemctl प्रारंभ httpd
- फ़ायरवॉल- cmd --permanent --zone = public --add-service = http
- firewall-cmd --permanent --zone = public --add-service = https
- फ़ायरवॉल- cmd --reload
- yum httpd mariadb-server mariadb php phpmyadmin स्थापित करें
- systemctl स्टार्ट मारीडब
- systemctl सक्षम mariadb
- systemctl httpd को पुनरारंभ करें
- yum स्थापित php-mbstring php-intl
- mysql_secure_installation
- curl -s https://getcomposer.org/installer | php
- सीडी / var / www / html /
- php कंपोज़र .phar create-project --prefer-dist cakephp / app MyApp
- चाउर अपाचे: -R MyApp /
- डेटाबेस बनाएँ:
# mysql -u root -p
Enter password:
mysql> CREATE DATABASE mydb;
mysql> GRANT ALL ON mydb.* to 'myuser'@'localhost' IDENTIFIED BY '_password_';
mysql> FLUSH PRIVILEGES;
mysql> quit
- सामग्री के साथ फ़ाइल /etc/httpd/conf.d/my_app.conf बनाएं:
<VirtualHost *:80>
ServerAdmin root@localhost
ServerName cakephp.myapp.net
DocumentRoot /var/www/html/MyApp
<Directory /var/www/html/MyApp>
Allowoverride All
</Directory>
</VirtualHost>
cd / var / www / html / safe_log; chcon -Rv --type = httpd_user_content_rw_t tmp
टच / डिपोर्टेलबेल; रिबूट
अपने होस्ट पर मैं / etc / होस्ट्स को संपादित करता हूं और लाइन में प्रवेश करता हूं (192.168.56.101 मेरे वीएम का होस्ट-केवल-आईपी-पता है)
192.168.56.101 cakephp.myapp.net
सर्फ करने के लिए http://cakephp.myapp.net/
ToDo: डेटाबेस-कनेक्शन फ़ाइल संपादित करें।