कुछ महीने पहले, हमारी कंपनी ने एक कॉर्पोरेट PHP फ्रेमवर्क चुनने का फैसला किया, जिसका उपयोग हम अधिकांश परियोजनाओं के लिए करेंगे। इससे पहले, हमारे पास एक पूरा चिड़ियाघर था: सिम्फनी, ज़ेंड फ्रेमवर्क, वाईआईआई - जो अधिक पसंद करते थे। लोकप्रिय रूपरेखा की समीक्षा करने के बाद, हमने लारवेल की कोशिश करने का फैसला किया। कई प्रशिक्षण दिनों का परिणाम एक सारांश था जिसमें एक सरल अनुप्रयोग बनाया गया है, लेकिन चूंकि एक विस्तृत ट्यूटोरियल पहले से ही हब पर मौजूद है , मैंने केवल चार उपकरणों के बारे में लिखने का फैसला किया जो विकास में उपयोगी होंगे और जो किसी कारण से ट्यूटोरियल में उल्लिखित नहीं हैं:
लारवेल आईडीई हेल्पर जेनरेटर
पहली बार लारवेल को स्थापित करने और अपनी पसंदीदा आईडीई खोलने से, आपको एक झटका का अनुभव होगा (ठीक है, मैं निश्चित रूप से चौंक गया था, शायद आप
बेशक, आप अपने कोड में facades को पूरी तरह से छोड़ सकते हैं, लेकिन ऐसा कोई कट्टरपंथी समाधान भी नहीं है - लारवेल आईडीई हेल्पर जनरेटर । यह एक ऐसा पैकेज है, जो आपके एप्लिकेशन में उपयोग किए गए कोड के आधार पर, एक हेल्पर फ़ाइल उत्पन्न करता है जिसमें जनरेट किए गए स्थिर मुखौटा वर्ग होते हैं। आवेदन द्वारा किसी भी तरह से कक्षाओं का उपयोग नहीं किया जाता है, लेकिन केवल आईडीई पूरा करने के लिए आवश्यक हैं।
स्थापना
संगीतकार के माध्यम से स्थापित करें
composer require barryvdh/laravel-ide-helper:1.*
app/config/app.php
में प्रदाताओं के सरणी में एक नया सेवा प्रदाता जोड़ें:
'Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider'
अब आप facades के लिए एक फ़ाइल सहायक उत्पन्न कर सकते हैं
php artisan clear-compiled php artisan ide-helper:generate php artisan optimize
यदि आपने डेटाबेस के साथ कनेक्शन का वर्णन नहीं किया है, तो त्रुटिCould not determine driver/connection for DB
पॉप अप होगा - यह सामान्य है, फ़ाइल अभी भी उत्पन्न होगी
सुवक्ता-मॉडल (उनके संबंधित तालिकाओं के आधार पर) के विवरण के साथ एक डॉक ब्लॉक उत्पन्न करने के लिए:
php artisan ide-helper:models
जनरेटर आपको मौजूदा मॉडल वर्ग में या एक अलग_ide_helper_models.php
फ़ाइल के लिए डॉक ब्लॉक जोड़ने के लिए संकेत देगा। मैं मॉडल में जोड़ना पसंद करता हूं, लेकिन यह स्वाद की बात है
लारवेल 4 डिबगबर
Laravel Debugbar एक पैकेज है जो PHP Debug Bar के ढांचे में एकीकृत होता है।
एक बहुत ही सुविधाजनक उपकरण जो आपको कोड को नियंत्रित और डीबग करने की अनुमति देता है। आप हमेशा इस बात से अवगत होंगे कि कितने अनुरोध आए (यदि आप अचानक जोड़ना भूल गए
::with('smth')
), उन्होंने कितना समय लिया, लॉग को क्या लिखा गया था, तो आप वर्तमान उपयोगकर्ता के बारे में जानकारी देख सकते हैं कि पेज बनाने के लिए किस प्रकार का उपयोग किया गया था, जो डेटा उनके लिए स्थानांतरित कर दिया गया था और बहुत कुछ। इसके अलावा, किसी भी समय आप पिछले अनुरोधों के बारे में जानकारी देख सकते हैं, भले ही पुनर्निर्देशित हुआ हो।
यह एक खुला डिबगबार जैसा दिखता है:
डिबगबर निम्नलिखित जानकारी दिखा सकता है (मानक PHP डीबग बार संग्राहकों के अलावा, कुछ कस्टम इसमें शामिल हैं):
-
QueryCollector
: सभी प्रश्नों को पूरा किया और उन्हें कितना समय लगा -
RouteCollector
: वर्तमान रूट सूचना -
ViewCollector
: प्रयुक्त दृश्य (वैकल्पिक रूप से विचारों में स्थानांतरित डेटा दिखा सकते हैं, लेकिन यह आपके एप्लिकेशन की गति को प्रभावित कर सकता है) -
EventsCollector
: सभी घटनाओं - खोज के लायक,EventsCollector
की कई अलग-अलग घटनाएं हैं -
LaravelCollector
: Laravel संस्करण और पर्यावरण संबंधी जानकारी (डिफ़ॉल्ट रूप से अक्षम) -
SymfonyRequestCollector
: अनुरोध और प्रतिक्रिया सूचना -
LogsCollector
: नवीनतम लॉग प्रविष्टियों को दिखाता है (यहां तक कि पिछले प्रश्नों के साथ किए गए)। (डिफ़ॉल्ट रूप से अक्षम) -
FilesCollector
: .php फ़ाइलें जो अनुरोध के दौरान उपयोग की जाती थीं (डिफ़ॉल्ट रूप से अक्षम) -
ConfigCollector
: अनुप्रयोग विन्यास (डिफ़ॉल्ट रूप से अक्षम) -
LogCollector
: लॉग मोनोलॉग। यदिMessageCollector
संग्राहक सक्षम है, तो यह लॉगMessageCollector
भी दिखाता है -
PhpInfoCollector
: PHP संस्करण जानकारी -
MessagesCollector
: लॉग संदेश (किसी भी PSR-3 लकड़हारे के साथ काम करता है) -
TimeDataCollector
: रनटाइम -
MemoryCollector
: उपयोग की गई मेमोरी की मात्रा -
ExceptionsCollector
: अपवाद
वैसे, लारवेल 4.2.2 में , व्हॉट्स को फ्रेमवर्क से हटा दिया गया था (यह डेवलपर्स के लिए सबसे सुंदर त्रुटि पृष्ठ है), अब यह सिम्फनीडिसप्लेयर का उपयोग करता है, जो बस स्टैक ट्रेस दिखाता है। यदि आप क्वेरी पैरामीटर और अधिक देखने के लिए उपयोग किए जाते हैं, तो लारवेल देबगबर आपको इस परिवर्तन से शांति से बचने में मदद करेगा। यह काम करता है, ज़ाहिर है, केवल
debug
मोड में।
स्थापना
composer require barryvdh/laravel-debugbar:dev-master
app/config/app.php
में प्रदाताओं के सरणी में एक नया प्रदाता जोड़ें:
'Barryvdh\Debugbar\ServiceProvider',
इस पैकेज के संसाधन (शैलियाँ, js) जोड़ें
php artisan debugbar:publish
पैकेज के लिए प्रलेखन में, लेखक नोट करता है कि संसाधन संस्करण से संस्करण में भिन्न हो सकते हैं और इस लाइन को आपके
composer.json
जोड़ने की सलाह देते हैं।
"post-update-cmd": [ "php artisan debugbar:publish" ],
उपयोग किए गए संग्राहकों की सूची को संपादित करने के लिए, आपको सबसे पहले इस पैकेज के लिए एक विन्यास फाइल जोड़ना होगा:
php artisan config:publish barryvdh/laravel-debugbar
और फिर फाइल
app/config/packages/barryvdh/laravel-debugbar/config.php
।
ठग
फ़ेकर एक पुस्तकालय है जो लारवेल से बंधा नहीं है, लेकिन साइडर में उपयोग करने के लिए बहुत सुविधाजनक है। फ़ेकर विभिन्न परीक्षण डेटा उत्पन्न करता है: तार, संख्या, किसी भी आकार के ग्रंथ। सभी प्रकार के उपयोगकर्ता डेटा: नाम (दिए गए लिंग), फोन नंबर, ईमेल। पता डेटा: सड़कों, देशों, निर्देशांक, आदि। विभिन्न स्वरूपों में समय, वेबसाइट के पते, आईपी, ब्राउज़र उपयोगकर्ता एजेंट, बैंक कार्ड की जानकारी, रंग, बारकोड, विभिन्न हैश।
अलग-अलग, यह छवियों की पीढ़ी को ध्यान देने योग्य है, इसके लिए Faker LoremPixel जनरेटर का उपयोग करता है और निर्दिष्ट फ़ोल्डर की आवश्यक आकार और दिशा की छवि फ़ाइलों को ध्यान से कॉपी करता है:
$filename = $faker->image('image/dir', 300, 300, 'cats');
यादृच्छिक परीक्षण डेटा को "ठीक" करना भी संभव है, अर्थात, यह सुनिश्चित करने के लिए कि हर बार Faker समान डेटा उत्पन्न करता है, बस सेट करें:
$faker = Faker\Factory::create(); $faker->seed(1234); echo $faker->name; // 'Vera Gzhel'
डेटा की विशिष्टता और वैकल्पिकता सुनिश्चित की जा सकती है:
for ($i=0; $i < 5; $i++) { // $values[]= $faker->unique()->randomDigit; } for ($i=0; $i < 5; $i++) { // , null $values[]= $faker->optional()->randomDigit; }
आप कंस्ट्रक्टर को वांछित लोकेल पास करके डेटा को स्थानीयकृत भी कर सकते हैं
$faker = Faker\Factory::create('ru_RU'); echo $faker->name; //
इस तरह की कोई स्थापना नहीं है, बस इसे एक संगीतकार के साथ लोड करें
composer require fzaninotto/faker:1.4.*@dev
और उपयोग करें
$faker = Faker\Factory::create('ru_RU'); echo $faker->name;
रियासत
लारवेल 4.2 में, हमें होमस्टेड से परिचित कराया गया था - एक वैग्रेंट बॉक्स (एक आभासी मशीन की छवि), जिसमें लारवेल पर विकास के लिए आपको जो कुछ भी चाहिए वह सब कुछ है (और न केवल, अंततः, यह सिर्फ एक आभासी मशीन है)। मुझे लगता है कि यह बहुत अच्छा है कि लोकप्रिय ढांचे ने हमें आधिकारिक मुक्केबाजी के साथ प्रस्तुत किया। मुझे आशा है कि यह सामान्य रूप से डेवलपर्स के लिए लिनक्स को लोकप्रिय बनाने में मदद करता है। और कई नौसिखिए डेवलपर्स जो विंडोज का उपयोग करते हैं और डेनवर या कुछ इसी तरह बैठना शुरू करने की कोशिश करते हैं, लिनक्स की कोशिश कर रहे हैं (और एक आवारा के साथ - यह बिल्कुल भी मुश्किल नहीं है), वे एक पेशेवर और मुकाबला पर्यावरण के करीब विकास का संचालन करेंगे। इसलिए, आगे मैं विंडोज पर होमस्टेड को स्थापित करने पर अधिक ध्यान दूंगा, और मुझे उम्मीद है कि मैं दुनिया को थोड़ा बेहतर बनाऊंगा।
होमस्टेड आपके ऑपरेटिंग सिस्टम या आपके सहकर्मी के ऑपरेटिंग सिस्टम, संस्करणों या विकास के लिए आवश्यक सॉफ़्टवेयर की उपलब्धता के बारे में सोचने की आवश्यकता को समाप्त करता है।
यह आपको केवल एक कमांड की मदद से अपने विकास के वातावरण में नई साइटें जोड़ने की अनुमति देगा, और आपके "वास्तविक" सिस्टम के बीच कॉन्फ़िगरेशन में निर्दिष्ट किसी भी फ़ोल्डर को सिंक्रनाइज़ करेगा (हम इसे बाद में अतिथि सिस्टम कहेंगे) और वर्चुअल मशीन। यही है, आप अपने पसंदीदा संपादक का उपयोग करके अपने ऑपरेटिंग सिस्टम में कोड को संपादित करना जारी रख सकते हैं, और फाइलें स्वचालित रूप से वर्चुअल मशीन के साथ सिंक्रनाइज़ हो जाएंगी।
होमस्टेड में शामिल हैं:
- उबंटू 14.04
- PHP 5.5
- nginx
- MySQL
- postgres
- नोड (+ बोवर, ग्रंट और गल्प)
- Redis
- memcached
- Beanstalkd
- लारवेल दूत
- फैब्रिक + हिपचैट एक्सटेंशन
स्थापना
सबसे पहले, Vagrant और VirtualBox स्थापित करें, इंस्टॉलर अनावश्यक प्रश्न नहीं पूछते हैं, इसलिए स्थापना दर्द रहित होगी।
योनि स्थापित करने के बाद, इंस्टॉलर आपको सिस्टम को पुनरारंभ करने के लिए कहेगा। रिबूट के दौरान, BIOS दर्ज करें और जांचें कि क्या आपने इंटेल वर्चुअलाइजेशन टेक्नोलॉजी (वीटी-एक्स, एएमडी-वी, को ईमानदार होने के लिए सक्षम किया है, मुझे यकीन नहीं है कि इसे विभिन्न प्रणालियों पर कैसे कहा जा सकता है), यदि नहीं, तो इसे चालू करें।
कंसोल खोलें, यदि आप विंडोज का उपयोग करते हैं, तो गिट बैश खोलें (और अगर यह स्थापित नहीं है, तो इसे स्थापित करें ), हमें अभी भी इसकी आवश्यकता होगी, ऐसा करके होमस्टेड बॉक्स जोड़ें:
vagrant box add laravel/homestead
जब बॉक्स डाउनलोड हो रहा है, तो होमस्टेड के लिए कॉन्फ़िगरेशन के साथ रिपॉजिटरी को क्लोन करें। प्रलेखन एक फ़ोल्डर में क्लोनिंग की सलाह देता है जहां आपकी सभी परियोजनाएं संग्रहीत की जाएंगी (उदाहरण के लिए,
C:/Users/YourName/Workspace
:
git clone https://github.com/laravel/homestead.git
हम
homestead
फ़ोल्डर में जाते हैं और
Homestead.yaml
कॉन्फ़िगरेशन फ़ाइल खोलते हैं, इसलिए यह कुछ इस तरह दिखाई देगा:
--- ip: "192.168.10.10" # ip memory: 2048 # cpus: 1 # authorize: /Users/me/.ssh/id_rsa.pub # keys: - /Users/me/.ssh/id_rsa # folders: # , - map: /Users/me/Code # ( ) to: /home/vagrant/Code # sites: # , - map: homestead.app # , to: /home/vagrant/Code/Laravel/public # (!) , (index.php)
यदि आपके पास ssh कीज़ नहीं हैं, तो उन्हें
ssh-keygen
(Git Bash में विंडोज पर उपलब्ध) का उपयोग करके जेनरेट करें:
ssh-keygen -t rsa -C "your@email.com"
Homestead.yaml
में सार्वजनिक और निजी कुंजियाँ पंजीकृत करें।
उस फ़ोल्डर को इंगित करें जहां आपकी परियोजनाओं को अतिथि (आपकी) मशीन पर संग्रहीत किया जाएगा (या पहले से संग्रहीत) और आभासी एक पर संबंधित पथ।
उदाहरण के लिए, एक परीक्षण साइट फ़ोल्डर बनाएँ, परियोजना निर्देशिका में
test
और इसमें फ़ाइल
test/public/index.php
जोड़ें:
// test/public/index.php <?php phpinfo();
Homestead.yaml
इसे और वांछित पते के
Homestead.yaml
पथ लिखें। नतीजतन,
Homestead.yaml
(विंडोज के लिए) कुछ इस तरह दिखेगा:
--- ip: "192.168.10.10" memory: 2048 cpus: 1 authorize: C:\Users\YourName\.ssh\id_rsa.pub keys: - C:\Users\YourName\.ssh\id_rsa folders: - map: C:\Users\YourName\Workspace to: /home/vagrant/Workspace sites: - map: test.dev to: /home/vagrant/Workspace/test/public - map: anothersite.dev to: /home/vagrant/Workspace/anothersite/public
अतिथि होस्ट फ़ाइल के लिए उपयुक्त पंक्तियाँ जोड़ें (Windows के लिए:
C:\Windows\System32\drivers\etc\hosts
):
127.0.0.1 test.dev
इस सेटअप के पूरा होने पर, यह ध्यान देने योग्य है कि आपको सिस्टम को एक बार सेट करना होगा, भविष्य के काम में आपको इन चरणों को दोहराना नहीं होगा।
हम होमस्टेड निर्देशिका में निष्पादित करके शुरू करते हैं:
vagrant up
योनि प्रारंभिक होने और वर्चुअल मशीन शुरू करने के बाद, आप परीक्षण पर जाकर इसके संचालन की जांच कर सकते हैं ।dev : 8000।
वह सब है। अब केवल एक चीज जिसे आपको काम करने की आवश्यकता है वह है
vagrant up
कमांड।
के उपयोग
अतिथि मशीन पर निम्नलिखित पोर्ट आपके वर्चुअल मशीन पर पुनर्निर्देशित किए गए हैं:
एसएसएच: 2222 -> 22
HTTP: 8000 -> 80
MySQL: 33060 -> 3306
पोस्टग्रैज: 54320 -> 5432
यह है, आप कनेक्ट कर सकते हैं, उदाहरण के लिए, इस तरह से ग्राहक मशीन से mysql के लिए:
mysql -u homestead -p -P 33060 -h 127.0.0.1
Postgresql और mysql के लिए उपयोगकर्ता नाम और पासवर्ड दोनों योनि / गुप्त और मूल / गुप्त हैं।
यदि आप अपने वर्चुअल मशीन के अंदर से डेटाबेस से कनेक्ट करते हैं, तो मानक पोर्ट का उपयोग करें।
Ssh के माध्यम से वर्चुअल मशीन में लॉग इन करें:
vagrant ssh
सभीvagrant
कमांड कोhomestead
डायरेक्टरी से चलाया जाना चाहिए
नई साइटें जोड़ने के दो तरीके हैं:
Homestead.yaml में एक नई साइट जोड़ें
sites: - map: test.dev to: /home/vagrant/Workspace/test/public - map: anothersite.dev to: /home/vagrant/Workspace/anothersite/public - map: new.dev to: /home/vagrant/Workspace/new/public
और निष्पादित करें:
vagrant provision
या वर्चुअल मशीन में लॉग इन करें और सर्व कमांड का उपयोग करें
vagrant ssh serve new.dev /home/vagrant/Workspace/new/public
इनमें से किसी भी विधि को जोड़ने के बाद, होस्ट फ़ाइल को अपडेट करना सुनिश्चित करें:
127.0.0.1 new.dev
वह सब है। अच्छा विकास किया है!