কোডআইগনিটার: নতুন সহায়ক তৈরি করবেন?


178

আমাকে বিভিন্ন উপায়ে প্রচুর অ্যারে লুপ করতে হবে এবং এটি একটি পৃষ্ঠায় প্রদর্শন করতে হবে। অ্যারেগুলি একটি মডিউল শ্রেণীর দ্বারা উত্পাদিত হয়। আমি জানি যে 'ভিউ'-তে ফাংশন অন্তর্ভুক্ত না করাই ভাল এবং আমি জানতে চাই যে ফাংশনগুলি ফাইলটি sertোকানো হয়।

আমি জানি আমি সাহায্যকারীদের 'প্রসারিত' করতে পারি, তবে আমি কোনও সাহায্যকারীকে প্রসারিত করতে চাই না। আমি আমার লুপ ফাংশনগুলির সাহায্যে একটি সহায়ক তৈরি করতে চাই .. এটিকে loops_helper.php বলি


আপনি কেন এই অ্যারেগুলি কেবল দর্শনেই পাস করতে পারবেন না?
মাইক হারর্ডকি

আমি পারব, তবে এটি ফাংশন থেকে দৃষ্টিভঙ্গি করার বিন্দুটি হারায় না ..
জনাথন

উত্তর:


378

একটি কোডআইগনিটার সহায়ক হ'ল একাধিক ফাংশন সহ একটি পিএইচপি ফাইল। এটি কোনও শ্রেণি নয়

একটি ফাইল তৈরি করুন এবং এর মধ্যে নিম্নলিখিত কোডটি রাখুন।

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

if ( ! function_exists('test_method'))
{
    function test_method($var = '')
    {
        return $var;
    }   
}

এটি অ্যাপ্লিকেশন / সহায়ক / এ সংরক্ষণ করুন । আমরা এটিকে "new_helper.php" বলব

ফাইলটি অন্তর্ভুক্ত করা যাবে না এবং কোডIgniter সুযোগের বাইরে থেকে চালানো যাবে না তা নিশ্চিত করার জন্য প্রথম লাইন বিদ্যমান। এর পরে সমস্ত কিছু স্ব-বর্ণনামূলক।

সহায়ক ব্যবহার করে


এটি আপনার নিয়ামক , মডেল বা দর্শনে থাকতে পারে (পছন্দনীয় নয়)

$this->load->helper('new_helper');

echo test_method('Hello World');

আপনি যদি এই সহায়কটিকে অনেকগুলি স্থানে ব্যবহার করেন তবে অটোলোড কনফিগারেশন ফাইলটিতে এটি যুক্ত করে এটি স্বয়ংক্রিয়ভাবে লোড হতে পারে <your-web-app>\application\config\autoload.php

$autoload['helper'] = array('new_helper');

-Mathew


33
সর্বদা ব্যবহার করুন যে সহায়ক ফাইলের নাম "_helper" দিয়ে যুক্ত করা হয়েছে অন্যথায় আপনি একটি ত্রুটি পাবেন। সুতরাং "সহায়ক_নাম" কাজ করবে না তবে আপনার ফাইলটির নাম দিন "নাম_হেল্পার"।
ভূমি সিংহল

3
সিআই 2 হিসাবে, আপনাকে মডেলটির মধ্যে কোনও সহায়ক ব্যবহার করার জন্য আপনাকে সিআই উদাহরণও পেতে হবে: i সিআই = get_instance (); $ ci-> load-> সাহায্যকারী ( 'name_helper');
এভারনুব

3
শুধু একটি নোট, সাহায্যকারী নেই আছে একটি ফাংশন যাবে। এটি পাশাপাশি একটি বর্গ হতে পারে। উদাহরণস্বরূপ, এলিসল্যাব ফোরামে "উইজেটস" তৈরির কৌশলটি দেখুন । তারপরে আপনি এই ক্লাসটি যে কোনও জায়গায় ব্যবহার করতে পারেন ... এছাড়াও প্রযুক্তিগতভাবে আপনি নিজের সহায়তাটি সিআই ইনস্টলসে লোড করতে পারেন যদি আপনি উদাহরণটি পেয়ে তা চান এবং তার $thisসম্পত্তি হিসাবে সেট করে ... আপনি অবশ্যই চাইলে সমস্ত।
জেনারেল রেডনেক

2
যদি ফাংশন_অস্তাদীদের চেক হয় তবে এর ব্যবহার কী? এটি একটি কোড ইগনিটার জিনিস, এটি কি কোনও সাধারণ পিএইচপি ভাল অভ্যাসের জিনিস? আপনি এটি প্রয়োজন হবে কেন?
skrln

2
@ এসসিআরএলএন এর একটি সুযোগ রয়েছে যে আপনার একটি সহায়ক স্বয়ংক্রিয়ভাবে লোড হয়েছে (আসুন এটি কল করুন cool_helper) এবং আপনি যদি ভুলে যান এবং $this->load->helper('cool_helper')স্বয়ংক্রিয়ভাবে লোড হওয়ার পরে যদি ম্যানুয়ালি কল করেন তবে আপনি একটি "ইতিমধ্যে সংজ্ঞায়িত" পিএইচপি ত্রুটি বা কিছু পাবেন। এটি একই কোডটি দুটিবার লোড করা include_once()থেকে বিরত রাখে (সমস্যাটি এড়াতে এটি পিএইচপি ফাংশনের মতো তবে কোডআইগনিটার সহায়কদের পক্ষে)। মূলত, একটু অনুবাদ করা: যদি ফাংশনটি না থাকে তবে এর অর্থ হেল্পার আগে লোড হয়নি। আসুন এটি সংজ্ঞায়িত করা যাক।
আলেজান্দ্রো ইভান

79

কিছু কোড যা আপনাকে সহায়তার ভিতরে সিআই উদাহরণ ব্যবহার করতে দেয়:

function yourHelperFunction(){
    $ci=& get_instance();
    $ci->load->database(); 

    $sql = "select * from table"; 
    $query = $ci->db->query($sql);
    $row = $query->result();
}

1
@ আর 4 সিচুন, ঠিক আছে। এমনকি উদাহরণের সংজ্ঞাগুলির জন্য ফিরে আসতে আমার 5 মিনিটও লাগেনি। :)
ব্যবহারকারীর 1048839

@ আর 4 সিচুন, এবং এটি একটি দুর্দান্ত টিপ
অরুণ

17

আমার জন্য কেবল "_helper"পিএইচপি ফাইলের পরে পাঠ্য যুক্ত করার মতো কাজ করে:

কোডিগিনিটার হেল্পার্স

এবং স্বয়ংক্রিয়ভাবে ফোল্ডারের অ্যাপ্লিকেশন -> ফাইল অটোলোয়াড.এফপি ফাইলটিতে সাহায্যকারীকে লোড করতে "_হেল্পার" এর মতো অ্যারে সহায়কটির নাম যুক্ত করুন:

olo অটোল্যাড ['সহায়ক'] = অ্যারে ('কমুনস');

এবং এটির সাহায্যে আমি হেল্পারের সমস্ত ফাংশন ব্যবহার করতে পারি


1
আমি সবেমাত্র এটি আবিষ্কার করেছিলাম যেমন আপনি বলেছেন, _helperফাইল নামের শেষে কোডআইগিনিটারের প্রয়োজন হবে ।
জারেড আইটনিয়ার

@ জ্যারেড, হ্যাঁ, এটি আমার ক্ষেত্রেও ছিল, ফাইলের নামের শেষে _হেলপারের দরকার আছে!
pollux1er

11

নতুন সহায়ক তৈরি করতে আপনি পিক্সেল বিকাশকারীদের নির্দেশাবলী অনুসরণ করতে পারেন , তবে আমার পরামর্শটি কোনও নির্দিষ্ট অ্যাপ্লিকেশনের নির্দিষ্ট অংশের জন্য প্রয়োজনীয় যুক্তির জন্য কোনও সহায়ক তৈরি করার নয়। পরিবর্তে, অ্যারেগুলি তাদের চূড়ান্ত উদ্দেশ্যে মানগুলিতে সেট করতে নিয়ামকটিতে সেই যুক্তিটি ব্যবহার করুন। এটি একবার পেয়ে গেলে, আপনি এটিকে টেমপ্লেট পার্সার ক্লাস ব্যবহার করে ভিউতে পাস করেন এবং (আশা করি) আপনি পিএইচপি এর মতো দেখতে এমন কোনও কিছু থেকে ইকোস এবং ফোরচের পরিবর্তে ভেরিয়েবল বা ভেরিয়েবল ট্যাগ জোড়া ব্যবহার করে ভিউটি পরিষ্কার রাখতে পারেন। অর্থাৎ,

{blog_entries}
<h5>{title}</h5>
<p>{body}</p>
{/blog_entries}

পরিবর্তে

<?php foreach ($blog_entries as $blog_entry): ?>
<h5><?php echo $blog_entry['title']; ?></h5>
<p><?php echo $blog_entry['body']; ?></p>
<?php endforeach; ?>

এই পদ্ধতির আরেকটি সুবিধা হ'ল আপনি যদি সমস্ত কাজ করার জন্য কাস্টম সহায়ককে ব্যবহার করেন তবে সিআই ইনস্ট্যান্স যুক্ত করার বিষয়ে আপনাকে চিন্তা করতে হবে না।


3

/ অ্যাপ্লিকেশন / সহায়কগুলিতে আপনার সহায়তার নাম সহ একটি ফাইল তৈরি করুন এবং এটি অটোলোড কনফিগারেশন ফাইলে যুক্ত করুন / এটিকে ম্যানুয়ালি লোড করুন।

উদাহরণস্বরূপ এই অ্যাপ্লিকেশনটির সাথে / অ্যাপ্লিকেশন / সহায়কদের মধ্যে ব্যবহারকারী_হেল্পার.এফপি নামে একটি ফাইল রাখুন :

<?php
  function pre($var)
  {
    echo '<pre>';
    if(is_array($var)) {
      print_r($var);
    } else {
      var_dump($var);
    }
    echo '</pre>';
  }
?> 

এখন আপনি হয় সহায়তার সাহায্যে লোড করতে পারেন $this->load->helper(‘user’);বা এটিকে অ্যাপ্লিকেশন / কনফিগার / অটোলোআড.পিএফ কনফিগারেশনে যুক্ত করতে পারেন।


3

কেবলমাত্র অ্যাপ্লিকেশন সহায়ক ডিরেক্টরিতে কোনও সহায়ককে সংজ্ঞায়িত করুন তারপরে আপনার নিয়ামকের কাছ থেকে কল করুন ঠিক যেমন ফাংশন নাম

helper name = new_helper.php
function test_method($data){
 return $data
}   

নিয়ামক সাহায্যকারী লোড করুন

$this->load->new_helper();
$result =  test_method('Hello world!');
if($result){
 echo $result
}

আউটপুট হবে

Hello World!

3

আপনার কনফিগারেশন ফাইল থেকে কোনও আইটেম পুনরুদ্ধার করতে, নিম্নলিখিত ফাংশনটি ব্যবহার করুন:

$this->config->item('item name'); যেখানে আইটেমের নাম হ'ল কনফিগার অ্যারে সূচি আপনি পুনরুদ্ধার করতে চান। উদাহরণস্বরূপ, আপনার ভাষা পছন্দটি আনতে আপনি এটি করবেন:

$lang = $this->config->item('language'); আপনি যে আইটেমটি আনার চেষ্টা করছেন সেটি যদি বিদ্যমান না থাকে তবে ফাংশনটি মিথ্যা (বুলিয়ান) দেয়।

আপনি যদি কোনও নির্দিষ্ট সূচকে আপনার কনফিগার আইটেমগুলি অর্পণ করতে $ এই-> কনফিগারেশন> লোড ফাংশনের দ্বিতীয় প্যারামিটারটি ব্যবহার করেন তবে আপনি এটি> এই-> কনফিগারেশন-এর দ্বিতীয় প্যারামিটারে সূচকের নাম উল্লেখ করে এটি পুনরুদ্ধার করতে পারেন > আইটেম () ফাংশন। উদাহরণ:

// ব্লগ_সেটিংস.পিপি নামের একটি কনফিগার ফাইল লোড করে এবং এটি "ব্লগ_সেটিংস" নামের একটি সূচীতে নির্ধারিত করে

$this->config->load('blog_settings', TRUE);

// ব্লগ_সেটিং অ্যারের মধ্যে থাকা সাইট_নাম নামের একটি কনফিগার আইটেম পুনরুদ্ধার করুন

$site_name = $this->config->item('site_name', 'blog_settings');

// একই আইটেমটি নির্দিষ্ট করার একটি বিকল্প উপায়:

$blog_config = $this->config->item('blog_settings');

$ সাইট_নাম = $ ব্লগ_কনফিগ ['সাইট_নাম'];

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.