{"id":26762,"date":"2021-04-29T19:21:00","date_gmt":"2021-04-29T16:21:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26762"},"modified":"2021-10-17T17:49:01","modified_gmt":"2021-10-17T14:49:01","slug":"programacion-avanzada-de-php-como-usar-el-espacio-de-nombres-en-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/programacion-avanzada-de-php-como-usar-el-espacio-de-nombres-en-php\/","title":{"rendered":"Programaci\u00f3n avanzada de PHP: c\u00f3mo usar el espacio de nombres en PHP"},"content":{"rendered":"<p>Para los principiantes de PHP, el concepto de espacios de nombres parece bastante complejo. Pero, una vez que comprendemos los conceptos b\u00e1sicos de los espacios de nombres, es f\u00e1cil de implementar. En este art\u00edculo, estudiamos c\u00f3mo usar el espacio de nombres en PHP.<\/p>\n<p>Como desarrollador, obtendr\u00e1 una idea de la programaci\u00f3n PHP avanzada mientras usa los espacios de nombres en su c\u00f3digo.<\/p>\n<p>PHP introdujo espacios de nombres para evitar conflictos de nombres entre clases, funciones y constantes.<\/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=\"Programaci\u00f3n avanzada de PHP: c\u00f3mo usar el espacio de nombres en PHP\" ><\/a><\/p>\n<p>Cuando trabajamos en un proyecto grande, puede haber posibilidades de que los programadores den los mismos nombres a clases, funciones o constantes. Por ejemplo, si 2 programadores definen la misma clase A, PHP arroja un error fatal como no puede volver a declarar la clase A.<\/p>\n<h3>Definir espacio de nombres en PHP<\/h3>\n<p>Para entender cu\u00e1ndo debemos definir el espacio de nombres, escribiremos alg\u00fan fragmento de c\u00f3digo.<\/p>\n<p>Digamos que nuestro \u00fanico desarrollador ha escrito un c\u00f3digo a continuaci\u00f3n en un archivo john.php. Este c\u00f3digo es solo un ejemplo para explicar los espacios de nombres. Para simplificar, escribimos funci\u00f3n, clase y constantes en el mismo archivo.<\/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>Tenemos otro desarrollador que tambi\u00e9n us\u00f3 el mismo nombre para clases, funciones y constantes pero para diferentes prop\u00f3sitos (salidas). Su nombre de archivo es 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>Ahora, cuando ambos archivos del desarrollador est\u00e9n incluidos en nuestro proyecto, obtendremos el error fatal. La raz\u00f3n del error es que no podemos usar el mismo nombre dos veces para una clase o m\u00e9todo.<\/p>\n<p>Aqu\u00ed es donde deber\u00edamos definir el espacio de nombres.<\/p>\n<p>En ambos archivos PHP podemos definir espacios de nombres como se muestra a continuaci\u00f3n.<\/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>Y<\/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>Una vez que agregamos espacios de nombres a los archivos anteriores, los errores de PHP desaparecer\u00e1n.<\/p>\n<h3>Usar espacios de nombres<\/h3>\n<p>En esta etapa, hemos terminado con la definici\u00f3n de espacios de nombres. El siguiente paso es c\u00f3mo usar los espacios de nombres en PHP.<\/p>\n<p>Para usar el m\u00e9todo, la clase y las constantes de ambos programadores, necesitamos escribir un c\u00f3digo de la siguiente manera.<\/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>Para acceder a clases o m\u00e9todos, tenemos que agregar el nombre del espacio de nombres antes.<\/p>\n<p>Esperamos que comprenda c\u00f3mo usar el espacio de nombres en PHP. Si tiene alguna pregunta o sugerencia, deje un comentario a continuaci\u00f3n.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfQuiere saber c\u00f3mo usar el espacio de nombres en PHP? Los espacios de nombres se utilizan para evitar conflictos de nombres entre clases y m\u00e9todos. En este art\u00edculo, estudiamos el espacio de nombres 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":[271],"tags":[849],"class_list":["post-26762","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/26762","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=26762"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/26762\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/21909"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=26762"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=26762"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=26762"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}