name loadmodel igniter creating code codeigniter

loadmodel - load view codeigniter



Codeigniter 2.0 third_party folder (4)

¿Qué es esta la carpeta third_party en codeigniter 2.0 y cómo usar eso?


Como John explicó en su respuesta , se puede cargar una biblioteca de un solo archivo colocándola en la carpeta de las bibliotecas :

$this->load->library(''my_app'');

Varias bibliotecas de un solo archivo se pueden cargar de manera similar con una matriz:

$this->load->library([''email'', ''table'']);

Sin embargo, si tiene una carpeta llena de clases para cargar no relacionada con CodeIgniter , puede colocarlas en la carpeta third_party , pero no use $this->load->add_package_path() (se espera una estructura de CI dentro del nuevo paquete third_party , es decir, con modelos, configuraciones, ayudantes, etc.).

Dejo un ejemplo, Stripe API tiene una carpeta lib y un init.php , así que hice lo siguiente:

  1. referencias de init.php actualizadas de dirname(__FILE__) . ''/lib/ dirname(__FILE__) . ''/lib/ a dirname(__FILE__) . ''/ dirname(__FILE__) . ''/ ) y colocó el archivo en la carpeta third_party / stripe junto con todos los contenidos de la carpeta lib ;
  2. Cree, por ejemplo, una biblioteca / Stripe.php ;
  3. Este sería su constructor:

    public function __construct() { $this->CI =& get_instance(); require_once(APPPATH.''third_party/stripe/init.php''); /Stripe/Stripe::setApiKey($this->CI->config->item(''stripe_key_secret'')); if(ENVIRONMENT === ''development''){ /Stripe/Stripe::setVerifySslCerts(false); } }

  4. Añádele funciones que invoquen directamente clases Stripe, simples, por ejemplo:

    public static function create_customer($email, $token) { $stripe_result = FALSE; try { $stripe_result = /Stripe/Customer::create([ ''email'' => $email, ''description'' => "Customer for $email", ''source'' => $token // obtained with Stripe.js ]); } catch(/Stripe/Error/Card $e) { return ''Error '' . $e->getHttpStatus() . '': ''. $e->stripeCode . '' -> ''. var_export($e->getJsonBody()[''error''], TRUE); } catch (Exception $e) { return ''Something else happened, completely unrelated to Stripe -> ''. var_export($e, TRUE); } return $stripe_result;

  5. cargue la biblioteca en uno de sus controladores e invoque el método:

    $this->load->library(''stripe''); Stripe::create_customer($someones_email, $someones_token); // you can use the result

Simplemente también dejando la URL actualizada: documentación de la clase de cargador de CodeIgniter .


La convención actual es usar una carpeta llamada "proveedor". "third_party" ya no se usa comúnmente.


Si su "código de biblioteca de terceros" requiere que se "cargue" un único archivo para que pueda hacer un uso completo de la biblioteca, entonces debe ir en el directorio de su biblioteca . Si su "código de biblioteca de terceros" es una carpeta llena de archivos, muchos de los cuales pueden ser "cargados" y utilizados, entonces debe ir en su directorio de terceros .

Esa es mi interpretación de los documentos de CodeIgniter para la clase Loader que se encuentran aquí: ellislab.com/codeigniter/user-guide/libraries/loader.html

¿Mi interpretación es incorrecta? Si es así LMK!


Los paquetes son nuevos para CI2.0 que permiten la easy distribution of complete sets of resources in a single directory , que contiene modelos, bibliotecas, ayudantes, etc. ... pero que no deben confundirse con los módulos, como señala Phil Sturgeon con mucha ayuda.

$this->load->add_package_path()

Ver los docs para más