{"id":26756,"date":"2021-04-29T19:14:00","date_gmt":"2021-04-29T16:14:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26756"},"modified":"2021-10-18T03:53:33","modified_gmt":"2021-10-18T00:53:33","slug":"zaawansowane-programowanie-php-jak-uzywac-przestrzeni-nazw-w-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/zaawansowane-programowanie-php-jak-uzywac-przestrzeni-nazw-w-php\/","title":{"rendered":"Zaawansowane programowanie PHP &#8211; jak u\u017cywa\u0107 przestrzeni nazw w PHP"},"content":{"rendered":"<p>Dla pocz\u0105tkuj\u0105cych PHP, koncepcje przestrzeni nazw wydaj\u0105 si\u0119 do\u015b\u0107 skomplikowane. Ale kiedy ju\u017c zrozumiemy podstawy przestrzeni nazw, \u0142atwo j\u0105 zaimplementowa\u0107. W tym artykule dowiemy si\u0119, jak u\u017cywa\u0107 przestrzeni nazw w PHP.<\/p>\n<p>Jako programista poczujesz si\u0119 jak w zaawansowanym programowaniu PHP, u\u017cywaj\u0105c przestrzeni nazw w swoim kodzie.<\/p>\n<p>PHP wprowadzi\u0142o przestrzenie nazw, aby unikn\u0105\u0107 konflikt\u00f3w nazw mi\u0119dzy klasami, funkcjami i sta\u0142ymi.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20856-6082335e78ff5.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20856-6082335e78ff5.png\" alt=\"Zaawansowane programowanie PHP - jak u\u017cywa\u0107 przestrzeni nazw w PHP\" ><\/a><\/p>\n<p>Kiedy pracujemy nad du\u017cym projektem, mo\u017ce istnie\u0107 mo\u017cliwo\u015b\u0107, \u017ce programi\u015bci nadadz\u0105 te same nazwy klasom, funkcjom lub sta\u0142ym. Na przyk\u0142ad, je\u015bli 2 programist\u00f3w zdefiniuje t\u0119 sam\u0105 klas\u0119 A, PHP wygeneruje b\u0142\u0105d krytyczny, taki jak nie mo\u017cna ponownie zadeklarowa\u0107 klasy A.<\/p>\n<h3>Zdefiniuj przestrze\u0144 nazw w PHP<\/h3>\n<p>Aby zrozumie\u0107, kiedy powinni\u015bmy zdefiniowa\u0107 przestrze\u0144 nazw, napiszemy kawa\u0142ek kodu.<\/p>\n<p>Powiedzmy, \u017ce nasz programista napisa\u0142 poni\u017cszy kod w pliku john.php. Ten kod jest tylko przyk\u0142adem wyja\u015bnienia przestrzeni nazw. Dla uproszczenia zapisujemy funkcj\u0119, klas\u0119 i sta\u0142e w tym samym pliku.<\/p>\n<pre><code>function my_name() {\n\u00a0\u00a0\u00a0\u00a0echo \"John\";\n}\n\u00a0\nclass Programming {\n\u00a0\u00a0\u00a0\u00a0function my_language() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"PHP\";\n\u00a0\u00a0\u00a0\u00a0}\n}\n\u00a0\nconst MYCONST = 1;<\/code><\/pre>\n<p>Mamy innego programist\u0119, kt\u00f3ry r\u00f3wnie\u017c u\u017cy\u0142 tej samej nazwy dla klasy, funkcji i sta\u0142ych, ale do innych cel\u00f3w (wyj\u015bcia). Jego nazwa pliku to sam.php.<\/p>\n<pre><code>function my_name() {\n\u00a0\u00a0\u00a0\u00a0echo \"Sam\";\n}\n\u00a0\nclass Programming {\n\u00a0\u00a0\u00a0\u00a0function my_language() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"Python\";\n\u00a0\u00a0\u00a0\u00a0}\n}\n\u00a0\nconst MYCONST = 2;<\/code><\/pre>\n<p>Teraz, gdy oba pliki dewelopera zawarte w naszym projekcie dostaniemy b\u0142\u0105d krytyczny. Powodem b\u0142\u0119du jest to, \u017ce nie mo\u017cemy dwukrotnie u\u017cy\u0107 tej samej nazwy dla klasy lub metody.<\/p>\n<p>W tym miejscu powinni\u015bmy zdefiniowa\u0107 przestrze\u0144 nazw.<\/p>\n<p>W obu plikach PHP mo\u017cemy zdefiniowa\u0107 przestrzenie nazw jak poni\u017cej.<\/p>\n<pre><code>&lt;?php\nnamespace John;\n\u00a0\nfunction my_name() {\n\u00a0\u00a0\u00a0\u00a0echo \"John\";\n}\n\u00a0\nclass Programming {\n\u00a0\u00a0\u00a0\u00a0function my_language() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"PHP\";\n\u00a0\u00a0\u00a0\u00a0}\n}\n\u00a0\nconst MYCONST = 1;\n?&gt;<\/code><\/pre>\n<p>I<\/p>\n<pre><code>&lt;?php\nnamespace Sam;\n\u00a0\nfunction my_name() {\n\u00a0\u00a0\u00a0\u00a0echo \"Sam\";\n}\n\u00a0\nclass Programming {\n\u00a0\u00a0\u00a0\u00a0function my_language() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo \"Python\";\n\u00a0\u00a0\u00a0\u00a0}\n}\n\u00a0\nconst MYCONST = 2;\n?&gt;<\/code><\/pre>\n<p>Po dodaniu przestrzeni nazw do powy\u017cszych plik\u00f3w b\u0142\u0119dy PHP znikn\u0105.<\/p>\n<h3>Korzystanie z przestrzeni nazw<\/h3>\n<p>Na tym etapie ko\u0144czymy definiowanie przestrzeni nazw. Nast\u0119pnym krokiem jest wykorzystanie przestrzeni nazw w PHP.<\/p>\n<p>Aby u\u017cy\u0107 metody, klasy i sta\u0142ych obu programist\u00f3w, musimy napisa\u0107 nast\u0119puj\u0105cy kod.<\/p>\n<pre><code>&lt;?php\nrequire_once('john.php');\nrequire_once('sam.php');\n\u00a0\nSammy_name();\u00a0 \/\/output \"Sam\"\nJohnmy_name(); \/\/output \"John\"\n\u00a0\n$a = new SamProgramming();\n$a-&gt;my_language();\u00a0\u00a0 \/\/output \"Python\"\n\u00a0\n$b = new JohnProgramming();\n$b-&gt;my_language();\u00a0\u00a0 \/\/output \"John\"\n\u00a0\n\u00a0\necho JohnMYCONST;\u00a0 \/\/output \"1\"\necho SamMYCONST;\u00a0\u00a0 \/\/output \"2\"\n?&gt;<\/code><\/pre>\n<p>Aby uzyska\u0107 dost\u0119p do klasy lub metod, musimy do\u0142\u0105czy\u0107 przed nimi nazw\u0119 przestrzeni nazw.<\/p>\n<p>Mamy nadziej\u0119, \u017ce rozumiesz, jak u\u017cywa\u0107 przestrzeni nazw w PHP. Je\u015bli masz jakie\u015b pytania lub sugestie, zostaw komentarz poni\u017cej.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chcesz wiedzie\u0107, jak u\u017cywa\u0107 przestrzeni nazw w PHP? Przestrzenie nazw s\u0142u\u017c\u0105 do unikania konflikt\u00f3w nazw mi\u0119dzy klasami i metodami. W tym artykule badamy przestrze\u0144 nazw PHP<\/p>\n","protected":false},"author":1,"featured_media":21909,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[277],"tags":[847],"class_list":["post-26756","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/26756","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=26756"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/26756\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21909"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=26756"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=26756"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=26756"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}