mvc კურსები. ძრავის შექმნა MVC-ზე

აუდიტორიის პროფილი:

  • კურსი განკუთვნილია პროფესიონალი ვებ დეველოპერებისთვის, რომლებიც იყენებენ Microsoft Visual Studio-ს ინდივიდუალურად ან გუნდურად, დიდ თუ პატარა ორგანიზაციებში.

წინაპირობები:

  • 2-3 წლიანი ვებ აპლიკაციების შემუშავების გამოცდილება Microsoft Visual Studio-სა და Microsoft ASP.NET-ის გამოყენებით;
  • პრაქტიკული გამოცდილება .NET Framework-თან;
  • C# პროგრამირების ენის საბაზისო ცოდნა.

კურსის დასრულების შემდეგ სტუდენტები შეძლებენ:

  • აღწერეთ Microsoft-ის ვებ ტექნოლოგიები და შეარჩიეთ შესაბამისი ინსტრუმენტი დავალებისთვის;
  • შეიმუშავონ ვებ აპლიკაციის არქიტექტურა და დანერგვა, რომელიც დააკმაყოფილებს ფუნქციური მოთხოვნების, მომხმარებლის ინტერფეისის მოთხოვნებს და ბიზნეს მოდელს;
  • შექმენით MVC მოდელი და დაწერეთ კოდი, რომელიც განახორციელებს აპლიკაციის ბიზნეს ლოგიკას და მუშაობს მონაცემებთან;
  • დაამატეთ კონტროლერები MVC აპლიკაციებში მომხმარებლის ურთიერთქმედების სამართავად, მოდელის განახლებისა და Views-თან ურთიერთობის უზრუნველსაყოფად;
  • შექმენით MVC Views, რომელიც საშუალებას გაძლევთ აჩვენოთ და დაარედაქტიროთ მონაცემები და ურთიერთქმედოთ მოდელებთან და კონტროლერებთან;
  • გაუშვით ერთეულის ტესტები და გამართვის ინსტრუმენტები ვებ აპლიკაციებისთვის Visual Studio 2012-ში და დააკონფიგურიროთ აპლიკაციები პრობლემების აღმოსაფხვრელად;
  • განავითაროს ვებ აპლიკაციები, რომლებიც იყენებენ ASP.NET მარშრუტიზაციას მომხმარებლებისთვის მეგობრული URL-ების და ლოგიკური ნავიგაციის უზრუნველსაყოფად;
  • უზრუნველყოს საიტის გვერდების თანმიმდევრული იერსახე და შეგრძნება, მათ შორის კორპორატიული ბრენდინგი, MVC ვებ აპლიკაციის განმავლობაში;
  • გამოიყენეთ გვერდის ნაწილობრივი განახლება და ქეშირება აპლიკაციის მიერ შექმნილი ქსელის დატვირთვის შესამცირებლად და მომხმარებლის ქმედებებზე რეაგირების დროის შესამცირებლად;
  • დაწერეთ JavaScript კოდი, რომელიც მუშაობს კლიენტის მხარეს და იყენებს jQuery სკრიპტირების ბიბლიოთეკას MVC ვებ აპლიკაციების მომხმარებელთან ურთიერთქმედების ოპტიმიზაციისთვის;
  • შექმენით MVC აპლიკაციები, რომლებიც მდგრადია მავნე თავდასხმების მიმართ და შეინახეთ ინფორმაცია მომხმარებლის პარამეტრების შესახებ;
  • გაიგეთ როგორ დაწეროთ Windows Azure ვებ სერვისი და შეხვიდეთ მას MVC აპლიკაციიდან;
  • აღწერეთ რა არის Web API და რატომ შეუძლიათ დეველოპერებს მისი დამატება აპლიკაციაში;
  • შეცვალეთ, როგორ ამუშავებს MVC აპლიკაცია ბრაუზერის მოთხოვნებს;
  • აღწერეთ ASP.NET MVC 5 ვებ აპლიკაციის შეფუთვა და განთავსება დეველოპერული აპარატიდან ვებ სერვერზე;
  • ვებ აპლიკაციების შემუშავება ASP.NET MVC 5-ის გამოყენებით;
  • ASP.NET MVC 5 მოდელების შემუშავება;
  • ASP.NET MVC 5 კონტროლერების შემუშავება;
  • ASP.NET MVC 5 ხედების შემუშავება;
  • როგორ მოვახდინოთ ASP.NET MVC 5 ვებ აპლიკაციების ტესტირება და გამართვა;
  • ASP.NET MVC 5 ვებ აპლიკაციების სტრუქტურირება;
  • ASP.NET MVC 5 ვებ აპლიკაციებზე სტილის გამოყენების ფუნქცია;
  • ASP.NET MVC 5-ში საპასუხო გვერდების აგების მექანიზმი;
  • JavaScript-ისა და jQuery-ის გამოყენების თავისებურება საპასუხო MVC 5 ვებ აპლიკაციების შესაქმნელად;
  • ASP.NET MVC 5 ვებ აპლიკაციებზე წვდომის კონტროლის პრინციპები;
  • როგორ ავაშენოთ ძლიერი ASP.NET MVC 5 ვებ აპლიკაციები;
  • ვებ API-ების დანერგვა ASP.NET MVC 5 ვებ აპლიკაციებში;
  • მოთხოვნის დამუშავება ASP.NET MVC 5 ვებ აპლიკაციებში;
  • ASP.NET MVC 5 ვებ აპლიკაციების განლაგების პრინციპები.
პროგრამის სტრუქტურა უმარტივესი პროგრამის მაგალითზე

MVC ASP .NET დუმებისთვის. Გაკვეთილი 1 . პროგრამა "გამარჯობა, მსოფლიო!"

გაკვეთილის საწყისი კოდის ჩამოტვირთვა შესაძლებელია.

ჩვენ ვისწავლით MVC-ს საფუძვლებიდან. დასაწყისისთვის, მოდით შევქმნათ მარტივი აპლიკაცია "გამარჯობა, მსოფლიო!" და ამრიგად, ჩვენ გამოვაცხოთ Microsoft Visual Studio 2010 (მას შეუძლია სხვა გაუშვას, მაშინ სურათები შეიძლება არ იყოს იგივე, რაც ნაჩვენებია ეკრანის სურათებში). გადადით "ფაილი" -> "ახალი" -> "პროექტი":

აირჩიეთ პროექტის ტიპი "Visual C#" -> "ASP.NET MVC 2 ვებ აპლიკაცია":

"OK" ღილაკზე დაჭერის შემდეგ Visual Studio შექმნის პროგრამის შაბლონს:

მოვიშოროთ ყველა არასაჭირო:

  • App_Data საქაღალდე.
  • ამოიღეთ AccountController.cs Controllers საქაღალდიდან
  • View საქაღალდიდან, ანგარიშის საქაღალდე.
  • View საქაღალდე შეიცავს Home და Shared საქაღალდეებს. მოდით წავშალოთ ამ საქაღალდეების მთელი შიგთავსი. მოდით დავტოვოთ საქაღალდეები.

ასე გამოიყურება ჩვენი ხე ახლა:

ახლა ჩვენ ამოვიღებთ ყველა არასაჭირო პროგრამის კოდიდან, კერძოდ, About() მეთოდს:

და აქ არის ინდექსის მეთოდი, ჩვენ მას ცოტას გადავწერთ. კერძოდ, ჩვენ გავაკეთებთ მისი ტიპის სტრიქონს და შევცვლით თავად მეთოდის სხეულს. ასე გამოიყურება მთელი HomeController.cs პროგრამა ამის შემდეგ:

სისტემის გამოყენებით;

System.Collections.Generic-ის გამოყენებით;

System.Linq-ის გამოყენებით;

System.Web-ის გამოყენებით;

System.Web.Mvc-ის გამოყენებით;

სახელთა სივრცე MvcApplication2.Controllers

საჯარო კლასი HomeController: Controller

საჯარო სტრიქონის ინდექსი()

დაბრუნება "გამარჯობა სამყარო!" ;

და ეს არის ის, რასაც პროგრამა გამოიმუშავებს, როდესაც ჩვენ შევადგენთ და გავუშვით.

ASP.NET Core MVC ვებ აპლიკაციების შემუშავება

კურსი იკითხება უახლესი ვერსიით!

კურსის განმავლობაში შეისწავლით როგორ შექმნათ ვებ აპლიკაციები გამოყენებით ASP.NET Core MVC NET Framework-დან. თქვენ მიიღებთ ცოდნას და უნარებს, რომლებიც საშუალებას მოგცემთ მნიშვნელოვნად გააუმჯობესოთ თქვენი ვებ აპლიკაციების შესრულება და მასშტაბურობა. კურსის განმავლობაში თქვენ შეადარებთ ASP.NET CORE MVC და ASP.NET Web Forms ტექნოლოგიებს და მიიღებთ რეკომენდაციებს ამა თუ იმ ტექნოლოგიის არჩევისთვის.

კურსი გათვლილიაპროფესიონალი ვებ დეველოპერებისთვის, რომლებსაც აქვთ Visual Studio-ს გამოყენებით აპლიკაციების შექმნის გამოცდილება.

ამ კურსის გასავლელად გჭირდებათ მოქმედი ანგარიშზე წვდომაMicrosoft Azure. გთხოვთ, გაითვალისწინოთ, რომ ახალი წვდომის მიღებას შესაძლოა 48 საათი დასჭირდეს. თუ არ გაქვთ წვდომა, გთხოვთ აცნობოთ თქვენს მენეჯერს ტრენინგზე რეგისტრაციისას. ამ შემთხვევაში, ჩვენ მოგაწვდით საცდელ ვერსიას: 30-დღიანი Windows Azure Pass.

გჭირდებათ გაძლიერებული პრაქტიკა? ემზადებით Microsoft-ის სასერტიფიკაციო გამოცდებისთვის? მიიღეთ წვდომა ლაბორატორიები ონლაინ– ვირტუალური ლაბორატორიები Microsoft-ის ავტორიზებულ კურსებზე – კურსის განმავლობაში და დამთავრებიდან ორი კვირის განმავლობაში!სერვისი უნიკალურია და ხელმისაწვდომია მხოლოდ ცენტრ "სპეციალისტში"

MVC-ის (Model-View-Controller) კონცეფცია ბოლო წლებში ბევრს ახსენებენ ვებ პროგრამირების სამყაროში. ყველას, ვინც რაიმე ფორმით არის დაკავშირებული ვებ აპლიკაციების განვითარებასთან, ამა თუ იმ გზით, წააწყდა ამ აკრონიმს. დღეს ჩვენ გავიგებთ, რა არის MVC კონცეფცია და რატომ გახდა იგი პოპულარული.

ანტიკური ისტორია

MVC არ არის დიზაინის ნიმუში, ეს არის დიზაინის ნიმუში, რომელიც აღწერს ჩვენი განაცხადის სტრუქტურას, პასუხისმგებლობას და ამ სტრუქტურის თითოეული ნაწილის ურთიერთქმედებას.

ის პირველად 1979 წელს იყო აღწერილი, რა თქმა უნდა, განსხვავებული გარემოსთვის. მაშინ არ არსებობდა ვებ აპლიკაციის კონცეფცია. ტიმ ბერნერს ლიმ დარგა მსოფლიო ქსელის (WWW) თესლი ოთხმოცდაათიანი წლების დასაწყისში და სამუდამოდ შეცვალა სამყარო. შაბლონი, რომელსაც დღეს ვიყენებთ, არის ორიგინალური შაბლონის ადაპტაცია ვებ განვითარებისთვის.

ამ ფრეიმერის გამაოგნებელი პოპულარობა ვებ აპლიკაციებში განვითარდა იმის გამო, რომ იგი შედის განვითარების ორ გარემოში, რომლებიც ძალიან პოპულარული გახდა: Struts და Ruby on Rails. განვითარების ამ ორმა გარემომ გზა დაადგინა მოგვიანებით შექმნილი ასობით საწარმოო გარემოსთვის.

MVC ვებ აპლიკაციებისთვის

MVC დიზაინის ნიმუშის იდეა ძალიან მარტივია: ჩვენ მკაფიოდ უნდა გამოვყოთ პასუხისმგებლობა სხვადასხვა ქცევაზე ჩვენს აპლიკაციებში:

აპლიკაცია დაყოფილია სამ ძირითად კომპონენტად, რომელთაგან თითოეული პასუხისმგებელია სხვადასხვა ამოცანებზე. მოდით შევხედოთ კომპონენტებს დეტალურად მაგალითით.

კონტროლერი

კონტროლერიმართავს მომხმარებლის მოთხოვნებს (მიიღება როგორც HTTP GET ან POST მოთხოვნა, როდესაც მომხმარებელი დააწკაპუნებს ინტერფეისის ელემენტებზე სხვადასხვა მოქმედებების შესასრულებლად). მისი მთავარი ფუნქციაა საჭირო რესურსებისა და ობიექტების გამოძახება და კოორდინაცია, რომელიც საჭიროა მომხმარებლის მიერ განსაზღვრული მოქმედებების შესასრულებლად. როგორც წესი, კონტროლერი იძახებს დავალებისთვის შესაბამის მოდელს და ირჩევს შესაბამის ხედს.

მოდელი

მოდელიარის მონაცემები და წესები, რომლებიც გამოიყენება იმ მონაცემებთან მუშაობისთვის, რომლებიც წარმოადგენს აპლიკაციის მართვის კონცეფციას. ნებისმიერ აპლიკაციაში, მთელი სტრუქტურა მოდელირებულია, როგორც მონაცემები, რომლებიც მუშავდება გარკვეული გზით. რა არის მომხმარებელი აპლიკაციისთვის - მესიჯი თუ წიგნი? მხოლოდ ის მონაცემები, რომლებიც უნდა დამუშავდეს წესების შესაბამისად (თარიღი არ შეიძლება იყოს მომავალში, ელ.წერილი უნდა იყოს გარკვეული ფორმატით, სახელი არ შეიძლება იყოს X სიმბოლოზე მეტი და ა.შ.).

მოდელი კონტროლერს აძლევს მომხმარებლის მიერ მოთხოვნილი მონაცემების წარმოდგენას (მესიჯი, წიგნის გვერდი, ფოტო ალბომი და ა.შ.). მონაცემთა მოდელი იგივე იქნება, რაც არ უნდა გვსურს მომხმარებლისთვის წარდგენა. ამიტომ, ჩვენ ვირჩევთ ნებისმიერ ხელმისაწვდომ ხედს მონაცემების საჩვენებლად.

მოდელი შეიცავს ჩვენი აპლიკაციის ლოგიკის ყველაზე მნიშვნელოვან ნაწილს, ლოგიკას, რომელიც აგვარებს პრობლემას, რომელთანაც გვაქვს საქმე (ფორუმი, მაღაზია, ბანკი და ა.შ.). კონტროლერი ძირითადად შეიცავს ორგანიზაციულ ლოგიკას თავად აპლიკაციისთვის (როგორც სახლის მოვლა).

ხედი

ხედიგთავაზობთ სხვადასხვა ხერხს მოდელიდან მიღებული მონაცემების წარმოსადგენად. ეს შეიძლება იყოს თარგი, რომელიც ივსება მონაცემებით. შეიძლება არსებობდეს რამდენიმე განსხვავებული ხედვა და კონტროლერი ირჩევს რომელი ჯდება საუკეთესოდ არსებულ სიტუაციაში.

ვებ აპლიკაცია ჩვეულებრივ შედგება კონტროლერების, მოდელებისა და ხედებისგან. კონტროლერი შეიძლება შეიქმნას მთავარ კონტროლერად, რომელიც იღებს ყველა მოთხოვნას და მოუწოდებს სხვა კონტროლერებს მოქმედებების შესასრულებლად სიტუაციიდან გამომდინარე.

ავიღოთ მაგალითი

დავუშვათ, ჩვენ გვჭირდება ონლაინ წიგნის მაღაზიის განვითარება. მომხმარებელს შეუძლია შეასრულოს შემდეგი მოქმედებები: წიგნების ნახვა, რეგისტრაცია, ყიდვა, ნივთების დამატება მიმდინარე შეკვეთაზე, წიგნების შექმნა ან წაშლა (თუ ის ადმინისტრატორია). ვნახოთ, რა მოხდება, როდესაც მომხმარებელი დააწკაპუნებს კატეგორიაზე ფანტაზიაჩვენს მაღაზიაში არსებული წიგნების სათაურის სანახავად.

ჩვენ გვაქვს კონკრეტული კონტროლერი, რომელიც ახორციელებს წიგნებთან დაკავშირებულ ყველა მოქმედებას (ნახვა, რედაქტირება, შექმნა და ა.შ.). დავარქვათ books_controller.phpჩვენს მაგალითში. ასევე გვჭირდება მოდელი, მაგალითად, book_model.phpის, რომელიც ამუშავებს მაღაზიის ნივთთან დაკავშირებულ მონაცემებსა და ლოგიკას. და ბოლოს, ჩვენ გვჭირდება რამდენიმე ხედვა მონაცემების წარმოსადგენად, როგორიცაა წიგნების სია, რედაქტირების გვერდი და ა.შ.

შემდეგი სურათი გვიჩვენებს, თუ როგორ სრულდება მომხმარებლის მოთხოვნა დაკავშირებული წიგნების სიის სანახავად. ფანტაზია:

კონტროლერი (books_controller.php) იღებს მომხმარებლის მოთხოვნას (HTTP GET ან POST მოთხოვნას). ჩვენ შეგვიძლია დავაყენოთ ცენტრალური კონტროლერი, როგორიცაა index.php, რომელიც იღებს მოთხოვნას და უწოდებს books_controller.php-ს.

კონტროლერი ამოწმებს მოთხოვნას და პარამეტრებს და შემდეგ უწოდებს მოდელს (book_model.php), იკითხავსმას აქვს ამ თემაზე არსებული წიგნების სია ფანტაზია .

მოდელი იღებს მონაცემებს მონაცემთა ბაზიდან (ან სხვა წყაროდან, რომელიც ინახავს ინფორმაციას), იყენებს ფილტრებს და საჭირო ლოგიკას და შემდეგ აბრუნებს მონაცემებს, რომლებიც წარმოადგენს წიგნების სიას.

კონტროლერი იყენებს შესაბამის ხედს მომხმარებლისთვის მონაცემების წარსადგენად. თუ მოთხოვნა მოდის მობილური ტელეფონიდან, გამოიყენება მობილური ხედი; თუ მომხმარებელი იყენებს ინტერფეისის გარკვეულ დიზაინს, მაშინ შეირჩევა შესაბამისი ხედი და ა.შ.

რა არის სარგებელი?

ყველაზე აშკარა უპირატესობა, რომელსაც ვიღებთ MVC კონცეფციის გამოყენებით, არის პრეზენტაციის ლოგიკის (მომხმარებლის ინტერფეისის) და აპლიკაციის ლოგიკის მკაფიო გამიჯვნა.

ამ დღეებში გავრცელებული პრობლემაა სხვადასხვა ტიპის მომხმარებლების მხარდაჭერა, რომლებიც იყენებენ სხვადასხვა ტიპის მოწყობილობებს. მოწოდებული ინტერფეისი უნდა იყოს განსხვავებული, თუ მოთხოვნა მოდის კომპიუტერიდან ან მობილური ტელეფონიდან. მოდელი აბრუნებს ერთსა და იმავე მონაცემებს, ერთადერთი განსხვავება ისაა, რომ კონტროლერი ირჩევს სხვადასხვა ხედებს მონაცემების საჩვენებლად.

აპლიკაციის ლოგიკისაგან ხედების იზოლირების გარდა, MVC კონცეფცია მნიშვნელოვნად ამცირებს დიდი აპლიკაციების სირთულეს. კოდი ბევრად უფრო სტრუქტურირებულია, რაც აადვილებს გადაწყვეტილებების შენარჩუნებას, ტესტირებას და ხელახლა გამოყენებას.

რატომ გამოვიყენოთ სამუშაო მაგიდა?

როდესაც იყენებთ სამუშაო მაგიდას, ძირითადი MVC სტრუქტურა უკვე დაყენებულია და ყველაფერი რაც თქვენ უნდა გააკეთოთ არის სტრუქტურის გაფართოება თქვენი ფაილების შესაბამის დირექტორიაში განთავსებით MVC ნიმუშის შესატყვისად. გარდა ამისა, თქვენ გექნებათ უკვე დაწერილი და კარგად გამოცდილი ფუნქციების ნაკრები.

ავიღოთ cakePHP, როგორც MVC სამუშაო მაგიდის მაგალითი. ინსტალაციის შემდეგ, თქვენ გექნებათ სამი ძირითადი დირექტორია:

  • ნამცხვარი/
  • გამყიდველები/

საქაღალდე აპლიკაციაარის თქვენი ფაილების მდებარეობა. ეს არის ადგილი, რომ განავითაროთ აპლიკაციის თქვენი ნაწილი.

საქაღალდეში ნამცხვარიმასპინძლობს cakePHP ფაილებს (სამუშაო მაგიდასთან ფუნქციონირება).

საქაღალდე გამყიდველებიემსახურება მესამე მხარის PHP ბიბლიოთეკების შესანახად.

თქვენს სამუშაო სივრცეს (აპლიკაციის დირექტორია) აქვს შემდეგი სტრუქტურა:

  • აპლიკაცია/
    • კონფიგურაცია/
    • კონტროლერები/
    • ლოკალი/
    • მოდელები/
    • დანამატები/
    • ტესტები/
    • გამყიდველები/
    • დათვალიერება/
    • webroot/

თქვენ უნდა მოათავსოთ თქვენი კონტროლერები დირექტორიაში კონტროლერები, მოდელები დირექტორიაში მოდელებიდა ნახვები დირექტორიაში დათვალიერება!

როგორც კი სამუშაო მაგიდის გამოყენებას დაიწყებთ, მაშინვე ცხადი ხდება, სად მდებარეობს თქვენი აპლიკაციის თითქმის ნებისმიერი ნაწილი, რომელიც საჭიროებს შექმნას ან შეცვლას. ეს ორგანიზაცია თავისთავად მნიშვნელოვნად ამარტივებს აპლიკაციის შემუშავებისა და შენარჩუნების პროცესს.

ჩვენი მაგალითისთვის სამუშაო სივრცის გამოყენება

ვინაიდან ეს გაკვეთილი არ არის გამიზნული იმის ჩვენებაზე, თუ როგორ უნდა შექმნათ აპლიკაცია cakePHP-ით, ჩვენ ვაჩვენებთ მხოლოდ კოდს მოდელის, კონტროლერისა და ხედისთვის, კომენტარებით MVC სამუშაო მაგიდის გამოყენების უპირატესობებზე. კოდი განზრახ გამარტივებულია და უვარგისია რეალურ აპლიკაციაში გამოსაყენებლად.

გახსოვდეს, ჩვენ ვუყურებდით წიგნის მაღაზიას და ცნობისმოყვარე მომხმარებელს, რომელსაც სურდა ენახა ამ თემაზე წიგნების სრული სია. ფანტაზია. კონტროლერმა მიიღო მომხმარებლის მოთხოვნა და კოორდინაცია გაუწია საჭირო მოქმედებებს.

ასე რომ, როგორც კი მომხმარებელი დააჭერს ღილაკს, ბრაუზერი ითხოვს მოცემულ url-ს:

www.ourstore.com/books/list/fantasy

CakePHP შაბლონის URL ფორმატირება /კონტროლერი/action/param1/param2, სად მოქმედებაარის ფუნქცია, რომელსაც იძახებს კონტროლერი. ძველი კლასიკური ფორმით, url ასე გამოიყურება:

www.ourstore.com/books_controller.php?action=list&category=fantasy

კონტროლერი

cakePHP სამუშაო სივრცეში ჩვენი კონტროლერი ასე გამოიყურება:

კლასი BooksController აფართოებს AppController(

ფუნქციების სია ($კატეგორია) (

$this->set("წიგნები", $this->Book->findAllByCategory($category));

ფუნქცია add() ( ... ... )

ფუნქცია delete() ( ... ... )

... ... } ?>

მარტივი, არა?. ეს კონტროლერი შეინახება როგორც books_controller.phpდა მოთავსებულია /აპი/კონტროლერები. იგი შეიცავს ფუნქციების ჩამონათვალს, რომლებიც ასრულებენ მოქმედებებს ჩვენი მაგალითისთვის, ისევე როგორც სხვა ფუნქციები წიგნთან დაკავშირებული ოპერაციების შესასრულებლად (ახალი წიგნის დამატება, წიგნის წაშლა და ა.შ.).

სამუშაო გარემო ბევრ მზა გადაწყვეტილებას გვაძლევს და მხოლოდ წიგნების სიის შექმნა გვჭირდება. არსებობს საბაზისო კლასი, რომელშიც უკვე განსაზღვრულია კონტროლერის ძირითადი ფუნქციონირება, ასე რომ თქვენ უნდა მემკვიდრეობით მიიღოთ ამ კლასის თვისებები და ფუნქციები ( AppControllerარის მემკვიდრე კონტროლერი).

ყველაფერი რაც თქვენ უნდა გააკეთოთ მოქმედებების სიაში არის მოდელის გამოძახება მონაცემების მისაღებად და შემდეგ აირჩიეთ ხედვა მომხმარებლისთვის წარსადგენად. აი, როგორ კეთდება.

ეს -> წიგნიარის ჩვენი მოდელი და კოდის ნაწილი:

$this->Book->findAllByCategory($category)

ეუბნება მოდელს დააბრუნოს წიგნების სია შერჩეულ თემაზე (მოდელს მოგვიანებით განვიხილავთ).

მეთოდი კომპლექტიხაზში:

$this->set("წიგნები", $this->Book->findAllByCategory($category));

კონტროლერი გადასცემს მონაცემებს ხედში. ცვლადი წიგნებიიღებს მოდელის მიერ დაბრუნებულ მონაცემებს და მისაწვდომს ხდის ხედს.

ახლა რჩება მხოლოდ ხედის ჩვენება, მაგრამ ეს ფუნქცია ავტომატურად კეთდება cakePHP-ში, თუ ნაგულისხმევ ხედს ვიყენებთ. თუ გვსურს გამოვიყენოთ განსხვავებული ხედვა, მაშინ ცალსახად უნდა გამოვიძახოთ მეთოდი გაწევა.

მოდელი

მოდელი კიდევ უფრო მარტივია:

კლასის წიგნი აფართოებს AppModel-ს (

რატომ არის ცარიელი? იმის გამო, რომ ის მემკვიდრეობით იღებს საბაზისო კლასს, რომელიც უზრუნველყოფს საჭირო ფუნქციონირებას და ჩვენ უნდა გამოვიყენოთ CakePHP-ის დასახელების კონვენცია, რათა სამუშაო მაგიდამ შეასრულოს ყველა სხვა დავალება ავტომატურად. მაგალითად, cakePHP-მა თავისი სახელიდან იცის, რომ ეს მოდელი გამოიყენება BooksControllerდა რომ მას აქვს წვდომა მონაცემთა ბაზის ცხრილზე, რომელსაც ეწოდება წიგნები.

ამ განმარტებით, ჩვენ გვექნება მოდელი, რომელსაც შეუძლია მხოლოდ მონაცემთა წაკითხვა, წაშლა ან შენახვა მონაცემთა ბაზაში.

შეინახეთ კოდი როგორც წიგნი.phpსაქაღალდეში /აპი/მოდელები.

ხედი

ყველაფერი რაც ჩვენ ახლა უნდა გავაკეთოთ არის ხედის შექმნა (მინიმუმ ერთი) სამოქმედო სიისთვის. ხედს ექნება HTML კოდი და PHP კოდის რამდენიმე (რაც შეიძლება ნაკლები) ხაზი, რათა მოაწყოს მოდელის მიერ მოწოდებული წიგნების მასივი.












სახელი ავტორი ფასი

როგორც ხედავთ, ხედი არ ქმნის სრულფასოვან გვერდს, არამედ მხოლოდ HTML-ის ფრაგმენტს (ამ შემთხვევაში ცხრილს). იმის გამო, რომ CakePHP გთავაზობთ სხვა გზას გვერდის შაბლონის განსაზღვრისთვის და ხედი ჩასმულია ამ შაბლონში. სამუშაო მაგიდა ასევე გვაწვდის დამხმარე ობიექტებს HTML გვერდის ნაწილების შექმნისას საერთო ამოცანების შესასრულებლად (ფორმების, ბმულების, Ajax ან JavaScript-ის ჩასმა).

ხედის შენახვა როგორც სია.ctp(სია არის მოქმედების სახელი და ctp ნიშნავს CakePHP შაბლონს) საქაღალდეში /აპი/ნახვები/წიგნები(რადგან ეს არის ხედვა კონტროლერის მოქმედებისთვის).

ასე სრულდება სამივე კომპონენტი CakePHP სამუშაო მაგიდის გამოყენებით!

Სალამი ყველას! დღეს მე ვწერ სერიის პირველ სტატიას საკუთარის შექმნის შესახებ MVC აპლიკაციები.

დასაწყისისთვის, აღსანიშნავია, რომ თუ ვინმემ არ იცის, რა არის MVCმაშინ ჯერ ეს სტატია წაიკითხე: .

მაშ რა გვექნება ბოლოს? გვექნება ძრავა, შექმნილი გამოყენებით MVC დიზაინის ნიმუში. ეს ძრავა იქნება ძალიან მარტივი, ჩეკები სადღაც გამოტოვებული იქნება, მაგრამ ეს ყველაფერი ისე კეთდება, რომ გაიგოთ როგორ შექმნათ აპლიკაციები MVC, და შემდეგ, ჩვენი ძრავის დასრულების შემდეგ, შეგიძლიათ გამოიყენოთ იგი თქვენი პროექტებისთვის. ჩვენ გვექნება ძირითადი ფუნქციონირება:

  • ავტორიზაცია
  • პატარა ჩატი
  • სტატიების დამატება
  • სტატიის რედაქტირება
  • სტატიების წაშლა
  • მომხმარებლის მენეჯმენტი

ეს ყველაფერი იწყება საქაღალდის სტრუქტურით. გვექნება ეს ასე:

  • index.php
  • .htaccess
  • კონტროლერები
  • მოდელები
  • დათვალიერება
  • ლიბები

მგონი აქ ყველაფერი ნათელია. საქაღალდეებში კონტროლერები, მოდელები, დათვალიერებადა ლიბებიშეინახება კონტროლერები, მოდელები, სახეობებიდა სხვა ფაილები. შექმნის პროცესში ჩვენ დავამატებთ საჭირო საქაღალდეებს და ფაილებს.

ჩვენი ძრავის შესაქმნელად გამოყენებული იქნება ობიექტზე ორიენტირებული მიდგომა. თუ თქვენ მას კარგად არ იცნობთ, მაშინ ასევე ჯერ უნდა წაიკითხოთ ამ სტატიის შესახებ საიტზე.

ასე რომ, აქ ვამთავრებ შესავალ სტატიას და შემდეგში უკვე დავიწყებთ შექმნას ძრავა MVC-ზე. Მოგვიანებით გნახავ!