আমি কোনও মডিউল না লিখে কীভাবে পিএইচপি কোড চালাব?


15

আমাকে কিছু বান্ডিলের সাথে একটি ক্ষেত্র সংযুক্ত করতে হবে। একটি পিএইচপি স্নিপেট আমার জন্য কাজ করবে, সুতরাং আমার কোনও মডিউল দরকার নেই below নীচে স্নিপেটটি যা কার্যকর করতে হবে:

$field_name = 'field_custom_image';
// Create the field.
$field = array(
  'field_name' => $field_name,
  'type' => 'image',
);
field_create_field($field);

এবং তারপরে এই ক্ষেত্রটি বান্ডলে যুক্ত করার জন্য স্নিপেট:

// Create the instance.
$instance = array(
  'field_name' => $field_name,
  'entity_type' => 'node',
  'bundle' => 'article',
  'label' => 'Image',
  'description' => 'An image for the article.',
  'required' => TRUE,
);
field_create_instance($instance);

কোনও মডিউল লেখার, এটি ইনস্টল করার, এটি চালানোর, এবং এটি আনইনস্টল করার প্রয়োজন ছাড়া পিছু পিএইচপি কোডটি সরাসরি দ্রুপালে চালানোর কোনও উপায় আছে কি?


উভয় কাজের উত্তর এবং আমার প্রশ্নের তৈরি ভাল সংস্করণ জন্য সবাইকে ধন্যবাদ। আমি আমার সমস্যার সমাধান হিসাবে সমস্ত উত্তরকে ভোট দিয়েছি, এখন আমার পক্ষে সমস্ত সিদ্ধান্তকে সর্বোত্তম সমাধানের কারণ হিসাবে উত্তরগুলির মধ্যে একটি নির্বাচন করা একটি কঠিন সিদ্ধান্ত।
আলিরেজা তাবাতাবইয়ান

1
আপনি চালানোর জন্য যে কোডটি দেখানো প্রয়োজন তা যদি দেখানো হয় তবে উত্তরগুলি আরও সম্পূর্ণ হবে।
কিমলালুনো

@ কিয়ামলালুনো পরামর্শের জন্য ধন্যবাদ, আমি আমার প্রশ্নের সাথে পিএইচপি স্নিপেট সংযুক্ত করব।
আলিরিজা তাবতাবেইয়ান

1
ঘনিষ্ঠভাবে সম্পর্কিত প্রশ্ন ও উত্তর: ড্রশ ব্যবহার করে কীভাবে পিএইচপি স্ক্রিপ্ট চালানো যায় ?
tanius

উত্তর:


6

যদি আপনি একই চিন্তায় "আমাকে কিছু পিএইচপি চালানো দরকার" এবং "আমার কোনও মডিউল প্রয়োজন হয় না" বলছেন তবে আমি পরামর্শ দেব যে আপনি এই নির্দিষ্ট সমস্যার দিকে এগিয়ে গিয়ে ভুল পথে চলে যাচ্ছেন , বা সাধারণভাবে সাইটটি নির্মাণের দৃষ্টিভঙ্গি।

drush scrআপনি যদি সত্যিই যেতে চান সেই দিকটি আপনাকে সহায়তা করবে বা আপনি একটি পৃথক পিএইচপি স্ক্রিপ্ট লিখতে পারেন (মূলত কেবল সূচিপত্র / drupal_bootstrap()পিএফপি থেকে কলটির মাধ্যমে সমস্ত কিছু অনুলিপি / পেস্ট করুন এবং আপনার কাস্টম কোডটি পরে যুক্ত করুন) তবে আরও কয়েকজন রয়েছেন আপনি যে জিনিসগুলি দেখতে পারেন:

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

যে সাইটগুলিতে আমি কাজ করেছি সেগুলিতে এই দুটি সমাধানেরই সমন্বয় ছিল। কনফিগারেশন বেশিরভাগ রফতানি করা বৈশিষ্ট্যগুলির মডিউলগুলিতে যেতে হবে এবং যা কিছু না (যা আপনি সত্যই তা নিশ্চিত তা না?) একটি আপডেট হুকের মধ্যে যেতে পারে।


পরামর্শের জন্য ধন্যবাদ, বিশেষত আপডেট হুক ব্যবহার সম্পর্কে অবহিত করার জন্য। খুব দরকারী
আলিরিজা তাবতাবাদিয়ান

আপনি কি দয়া করে কিছু সমস্যা উল্লেখ করতে পারেন যা এই পদ্ধতির পিএইচপি কোডগুলি চালিয়ে যাওয়ার কারণে হতে পারে? আমি বলতে চাইছি কেবল পিএইচপি স্ক্রিপ্ট চালিয়ে কিছু সামগ্রী ধরণের ক্ষেত্রে ক্ষেত্র সংযুক্তি?
আলিরিজা তাবতাবায়িয়ান

18

হ্যাঁ, আছে, তবে আপনার বিবরণ দেওয়া হলেও আমি ভাবছি এটি আপনাকে সহায়তা করবে কিনা:

  1. মডিউল ডেভেল ইনস্টল করুন
  2. যান HTTP: // yoursite / devel / পিএইচপি
  3. আপনার কোড লিখুন এবং এটি কার্যকর করুন।

1
ডিভেল মডিউলটি "এক্সিকিউট পিএইচপি" ব্লক নিয়ে আসে, যা আপনি কোনও অঞ্চলে রাখতে পারেন।
কোনও এসএসইউট

12

আপনার যদি কেবল একবার কোড চালানোর দরকার হয়, আপনি দেভেল মডিউল সহ কোনও মডিউল ইনস্টল না করে এটি করতে পারেন।

একটি পিএইচপি ফাইল লিখুন (উদাহরণস্বরূপ কার্যগুলি। পিএফপি ), যেখানে ড্রপালের সাথে আসা ক্রোন.এফপি ফাইলটি রাখুন এবং নীচের কোডটি যুক্ত করুন।

/**
 * Root directory of Drupal installation.
 */
define('DRUPAL_ROOT', getcwd());

include_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
drupal_set_time_limit(240);

// Your code here.

আপনি যদি ইতিমধ্যে আপনার সাইট বজায় রাখা / মোতায়েনের জন্য ড্রাশ ব্যবহার করে থাকেন তবে আপনি একটি ড্রশ স্ক্রিপ্ট তৈরি করতে পারেন । এইভাবে, এটি সিএলআই দ্বারা সম্পাদন করা যেতে পারে এবং এটি যে কোনও যুক্তি গ্রহণ করতে পারে, এটি এটি বহু অনুষ্ঠানের জন্য পুনরায় ব্যবহারযোগ্য করে তোলে।

#!/usr/bin/env drush

// Your code here.
// Access the options with drush_get_option(), or any argument with drush_shift().

আপনি উদাহরণস্বরূপ drush php-eval(বা ন্যায়সঙ্গত drush ev) দিয়ে একটি পিএইচপি স্ক্রিপ্টও কার্যকর করতে পারেন :

drush php-eval 'print time();'

আমি একটি ড্রশ স্ক্রিপ্ট তৈরি করব, তবে আপনি যদি ড্রশ ইনস্টল করতে না পারেন, বা আপনাকে ব্রাউজার থেকে পিএইচপি কোড চালানো দরকার, প্রথম পদ্ধতিটি ঠিকঠাক কাজ করে।


10

আপনার কোড স্নিপেট একটি ফাইলে যুক্ত করুন এবং ফাইলটি file_name.phpআপনার ড্রুপাল সাইট রুট ফোল্ডারের মতো সংরক্ষণ করুন । তারপরে আপনার কার্যনির্বাহী ডিরেক্টরি হিসাবে দ্রুপাল সাইট রুট ফোল্ডারের মধ্যে থেকে একটি টার্মিনালে নিম্নলিখিত কমান্ডটি চালান:

drush scr file_name.php

এই আদেশটি আপনার পিএইচপি ফাইলটি কার্যকর করবে ute (এক্সিকিউশনটির ধারণা পেতে, আপনি আপনার ফাইলটিতে কিছু মুদ্রণ বিবৃতি অন্তর্ভুক্ত করতে পারেন যা টার্মিনালে পাঠ্য, পরিবর্তনশীল মান ইত্যাদি আউটপুট দেবে যেখানে আপনি ড্রাশ কমান্ড কার্যকর করবেন))

দ্রষ্টব্য: পূর্বশর্ত হিসাবে, আপনাকে drushআপনার সিস্টেমে ইনস্টল করা দরকার ।


3

আপনি দেভেল মডিউলটিরPhp ইনলাইন ব্যবহার করতে পারেন তবে কোনও মডিউল ছাড়াই আমার কাস্টম কোড চালানোর জন্য আপনাকে আমার কৌশলগুলির একটি ড্রপাল পেতে দেয়।

প্রথম একটি menu itemইন তৈরি করুনhook_menu

function yourmdoule_menu()
{

    $items['ytest'] = array(
        'title' => 'my debug and devel test tool ',
        'description' => 'create for debug and faster develop',
        'page callback' => 'my_function',
        'type' => MENU_CALLBACK,
        'access callback' => true,
    );
    return $items;
}

function my_function{

/// run every want you want
}

তারপরে ক্যাশে সাফ করুন (কারণ মেনু আইটেমগুলি দ্রুপালে ক্যাশে হয়েছে), এবং আপনার যা চান সবকিছু রেখে দিন my_functionএবং টাইপ করুনyoursite.com/ytest

আমি আশা করি এটি "দাদা" প্রকল্পগুলিতে আপনাকে সহায়তা করবে;)


@ আলিরিজা তাততাবেইয়ান আপনাকে "দাদা" স্বাগত জানিয়েছেন, ইরানী দ্রুপালিস্টকে এখানে দেখে খুশি হবেন,;)
ইউসুফ

2

ড্রুপাল মডিউলগুলির লক্ষ্য হ'ল নির্দিষ্ট উপাদানগুলিতে পৃথক যুক্তি সরবরাহ করা, যাতে কিছু ভুল হয়ে যায় তবে সেগুলি অক্ষম করা যায়।

hook_install/hook_update

আপনার ক্ষেত্রে যা এক সময় ভিত্তিতে একটি নতুন ক্ষেত্র তৈরি করছে, আদর্শ দৃশ্যে হয় হয় hook_installবা হয় ব্যবহার করা hook_update

আপনার যদি কাস্টম মডিউল না থাকে (বিটিডব্লিউ। আপনি এর জন্য এক্সপোর্টেড ফিচার মডিউলটিও ব্যবহার করতে পারেন), কেবল আপডেটের জন্য একটি নতুন তৈরি করুন (উদাঃ site_updates)। : Drupal এর 7, সব আপনি প্রয়োজন 3 ফাইলগুলির সাথে ফোল্ডার তৈরি করতে হয় .info, .moduleএবং .installএবং সংজ্ঞায়িত আপনার ইনস্টল বা আপডেট হুক .install। সামঞ্জস্যপূর্ণ পরিবেশ থাকার জন্য ইনস্টল / আপডেট হুক ব্যবহার করা সুবিধাজনক, বিশেষত যখন আপনি একাধিক ড্রুপাল সার্ভার (যেমন দেব, পরীক্ষা এবং প্রোড) করেন, তাই পরবর্তী স্থাপনার সময় পরিবর্তনটি আহ্বান করা যেতে পারে।

আপনি যদি এখনও মডিউল তৈরি করতে না চান তবে এখানে অন্যান্য পদ্ধতি রয়েছে।

এক সময় কার্যকর করা

আপনার যদি কেবলমাত্র একবারে নির্দিষ্ট পিএইচপি কোড চালানো দরকার তবে আপনি এটি করতে পারেন:

  • ডিভেল মডিউলটি সক্রিয় করুন এবং কোডটি এখানে পেস্ট করুন /devel/php,
  • পিএইচপি কোড নির্বাহ করতে CLI (এবং এর / কমান্ড) ব্যবহার করুন , যেমন egdrush evalev

    drush ev 'field_create_field(["field_name"=>"foo", "type"=>"image"]);'
    drush ev 'print_r(field_info_field("foo"));'
  • drush scrপিএইচপি স্ক্রিপ্ট কার্যকর করতে ব্যবহার করুন :

    drush scr my_file.php

    my_file.phpকার্যকর করার জন্য আপনার কোড সহ আপনার সরল পিএইচপি স্ক্রিপ্ট কোথায় ।

নির্দিষ্ট পৃষ্ঠা কার্যকর করা page

নির্দিষ্ট পৃষ্ঠাগুলি বা উপাদানগুলিতে কাস্টম কোড কার্যকর করতে:

  • সুবিধা নিন template.phpআপনার ফাইল কাস্টম থিম (যেমন template_preprocess_node, template_preprocess_block, template_preprocess_page)।
  • আপনি পিএইচপি মডিউল ব্যবহার করতে পারেন যা ফিল্টার সরবরাহ করে , যাতে আপনি নোডের মধ্যে পিএইচপি কোড লিখতে পারেন, ব্লকগুলি, দর্শনগুলি, ইত্যাদি etc.

সমস্ত পৃষ্ঠা কার্যকর করা

মডিউল না লিখে প্রতিটি পৃষ্ঠায় পিএইচপি কোড যুক্ত করতে এবং চালাতে, আপনি এটি করতে পারেন:

  • তার settings.phpজন্য একটি ফাইল ব্যবহার করুন । এটি কেবলমাত্র সাধারণ কোড যেমন কনফিগারেশন ওভাররাইডের জন্য প্রস্তাবিত। অন্যথায় hook_initআপনার কাস্টম মডিউলের অংশ হিসাবে আপনার এটি ব্যবহার করা উচিত ।
  • পিএইচপি পাঠ্য ফিল্টার সক্রিয় করুন , তারপরে এটিতে কাস্টম পিএইচপি কোড সহ একটি ব্লক তৈরি করুন এবং ব্লকটিকে পাদচরণ অঞ্চলে রাখুন।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.