సైట్ యొక్క కార్యాచరణను విస్తరించడంలో ఫంక్షన్ ఫైల్ వినోదాత్మక సహాయకం! ప్రత్యేకించి ఉద్దేశించిన ప్రయోజనం కోసం ఉపయోగించినట్లయితే - అయినప్పటికీ, చాలా మంది బ్లాగ్ / సైట్ యజమానులు functions.phpని హాడ్జ్పాడ్జ్గా చేయడంలో అద్భుతంగా ఉన్నారు.
ఏదైనా వ్యాపారంలో, అనుకూలత మరియు పరిమితులు (పరిమితులు, తరచుగా తార్కికం) ఉన్నాయి మరియు అందువల్ల WP కోర్ (థీమ్లు కాదు) యొక్క పారామితులను సర్దుబాటు చేయడానికి రూపొందించబడిన కొన్ని ఎక్జిక్యూటబుల్ కోడ్, టెంప్లేట్ వెలుపల తరలించడం మరింత సరైనది ...
సంభాషణ సైట్ యొక్క కార్యాచరణను ఆధునీకరించడం గురించి ఉన్నప్పుడు, "ప్లగిన్లు లేకుండా ..." కథనాల లైన్లో ఇది ఖచ్చితంగా కోడ్ యొక్క అన్ని బ్లాక్లను పురాణ functions.phpలోకి నెట్టాలని సూచించబడింది. ఇది సరికాదు!
అన్ని పూర్తిగా సాంకేతిక పొడిగింపులను (టెంప్లేట్ శైలికి నేరుగా సంబంధం లేదు) వాటి నమోదు కోసం నిర్వహించబడిన ప్లగిన్లోకి బదిలీ చేయడం మరింత తార్కికం.
దానిని సృష్టిద్దాం! మరియు లాభాలు మరియు నష్టాల గురించి కూడా మాట్లాడండి (వీటిలో చాలా తక్కువ ఉన్నాయి) ...
వ్యాసం యొక్క విభాగాలు:
మీ ప్లగ్ఇన్ని ఎలా సృష్టించాలి
దిగువ వచనంలో, మీ స్వంత చేతులతో మీ స్వంత ప్లగ్ఇన్ను ఎలా సృష్టించాలో మేము నేర్చుకుంటాము: మేము అన్ని వివరాలను, సూక్ష్మ నైపుణ్యాలను అర్థం చేసుకుంటాము. లాభాలు మరియు నష్టాలు ఏమిటో మేము కనుగొంటాము (తక్కువ నష్టాలు ఉన్నాయి !! మరియు బదులుగా, ఇవి అస్సలు ప్రతికూలమైనవి కావు, కానీ ప్రతి నిర్వాహకుడికి ఒకటి లేదా మరొక ప్రయోజనం)
functions.php ఫైల్ మరియు ప్లగిన్ మధ్య తేడా ఏమిటి
సైట్ యొక్క కార్యాచరణకు నేరుగా సంబంధించిన కొన్ని కోడ్లను ప్రత్యేక ప్లగిన్కి ఎందుకు తరలించాలి?
ఫంక్షన్ ఫైల్, దాని ప్రయోజనం మరియు అనుగుణ్యత ప్లగ్ఇన్ (ఒక థీమ్లోని ప్లగ్ఇన్ మాత్రమే) నుండి భిన్నంగా లేదు! - ఉపయోగకరమైన కార్యాచరణతో నిర్దిష్ట (క్రియాశీల) టెంప్లేట్ను మెరుగుపరచడం దీని ప్రధాన పని.
ఉదాహరణకు, "నావిగేషన్", ఇక్కడ, తార్కికంగా, బటన్ మెను సక్రియ థీమ్ యొక్క శైలికి అనుగుణంగా CSSతో రూపొందించబడింది - టెంప్లేట్ యొక్క రూట్లో దానిని వదిలివేయడం మరింత సరైనది కావచ్చు.
ప్రయోజనం ఏమిటి - ఫంక్షన్ ఫైల్ను ప్రత్యేక ఫైల్లుగా విభజించడం లేదా ప్రత్యేక ప్లగ్ఇన్?
ఉదాహరణకు, అత్యంత సాధారణమైనది - మీరు టెంప్లేట్ను మార్చాలని నిర్ణయించుకున్నారు!? ... ఫలితంగా, అన్ని ఫంక్షనల్ డెవలప్మెంట్లు పోతాయి, ఎందుకంటే అన్ని ఉపయోగకరమైన కోడ్ ఫంక్షన్ ఫైల్లో ఉంది (నేను ఒకసారి అలాంటి ఫైల్ పరిమాణాన్ని 750KILO చూసాను)
వాస్తవానికి, మీరు ఫంక్షన్ల డాక్యుమెంటేషన్ను క్రొత్త అంశానికి బదిలీ చేయవచ్చు, కానీ అన్నింటికంటే, చాలా ఉపయోగకరమైన సమయాన్ని తీసుకునే సవరణలు లేకుండా, మీరు దీన్ని చేయలేరు: కోతి మరియు పని)
ఆపై:
సైట్ ఫైల్లను లోడ్ చేసే క్రమం
క్లుప్తంగా: మా ఉదాహరణలో సైట్ కోర్ ఫైల్లను లోడ్ చేసే క్రమం క్రింది విధంగా ఉంది - సైట్ యొక్క క్రియాశీల ప్లగిన్లు (ప్లగిన్ల ఫోల్డర్ నుండి) మరియు వాటి కంటెంట్ కొంచెం ముందుగా లోడ్ చేయబడతాయి మరియు ఆ తర్వాత మాత్రమే కంటెంట్తో కూడిన functions.php ఫైల్ ప్రాసెస్ చేయబడింది. ఇదంతా మిల్లీసెకన్లలో ఉంది మరియు పేజీ వేగాన్ని పొందడం గురించి తీవ్రంగా మాట్లాడటం విలువైనది కాదు.
అయినప్పటికీ, డెవలపర్లచే స్థాపించబడిన అటువంటి లోడింగ్ ఆర్డర్కు ఒక కారణమని తెలుస్తోంది, ఇక్కడ ఫంక్షన్ ఫైల్కు రెండవ స్థానం ఇవ్వబడింది (వంటిది బహుశాతేలికైన మూలకం), ప్లగిన్ల యొక్క విస్తృత ఉపయోగం యొక్క వాస్తవం, తరచుగా భారీ కంటెంట్ ...
ఎవరైనా ఆశ్చర్యపోతారు: మరొక ప్లగ్ఇన్ ...? అది కష్టం!
మరియు నేను చెప్తున్నాను, ఇది ఏ వేగాన్ని ప్రభావితం చేయదు ... బదులుగా - మీరు ఒక సైట్ యొక్క సృష్టిని ఆలోచనాత్మకంగా సంప్రదించినట్లయితే.
అంతేకాకుండా, కొన్ని కోడ్ను బదిలీ చేయడం వల్ల కలిగే ప్రయోజనం మరొకదానిలో స్పష్టంగా ఉంటుంది, అనగా, సైట్ను లోడ్ చేసే వేగం క్రియాశీల ప్లగిన్ల సంఖ్యపై ఆధారపడి ఉండదు, కానీ వాటి కంటెంట్పై ఆధారపడి ఉంటుంది! కాబట్టి, చెప్పినట్లుగా, కొంచెం తరువాత లోడ్ చేయబడిన ఫంక్షన్ ఫైల్ను ఎందుకు కుదించకూడదు..? మరియు పూర్తి స్థాయి భారీ టెంప్లేట్-స్థాయి ప్లగిన్ కూడా! కాబట్టి అతని కోడ్లో ఎక్కువ భాగం ఎక్కడ ఉంది?
నా అభిప్రాయం ప్రకారం, (యాక్టివ్, వర్కింగ్) టెంప్లేట్ దాని నిర్దిష్ట పారామితులను మాత్రమే కలిగి ఉండాలి.
అంకగణితానికి విహారం ...
- తర్వాత లోడ్ చేయబడింది, ప్రశ్న ఏమిటంటే, కోడ్ ప్రాసెసింగ్ మొదట నిర్వహించబడే ప్రదేశానికి ఎందుకు తరలించకూడదు మరియు తదనుగుణంగా, అడ్మిన్ పేర్కొన్న WP కోర్ పారామితులకు సర్దుబాట్లు వేగంగా చదవబడతాయి మరియు సైట్ యొక్క సంబంధిత దశలో ప్రాసెస్ చేయబడతాయి బాబు?
- సైట్ యొక్క కార్యాచరణ యొక్క అపఖ్యాతి పాలైన మరియు తార్కిక సంస్థ.
- సౌలభ్యం, ఇది ముఖ్యం కాదు!
అదనంగా, ఇది చెప్పినట్లుగా, ఫంక్షన్ ఫైల్ అదే ప్లగ్-ఇన్ - మళ్ళీ నేను అడుగుతాను, మీరు దానిలోకి వచ్చే ప్రతిదాన్ని ఎందుకు నెట్టాలి? మరియు సైట్తో పని చేసే ప్రక్రియలో భారీ, చదవడానికి కష్టతరమైన కోడ్ డాక్యుమెంట్లో గందరగోళం చెందుతుంది, ఇది దాని కంటెంట్ ద్వారా నమ్మశక్యం కాని మరియు అన్యాయంగా ఉబ్బిపోతుంది.
తేలికైన ప్లగిన్ని సృష్టించడం, కాన్ఫిగర్ చేయడం మరియు మరచిపోవడం సులభం మరియు మరింత తార్కికం...
ఒక్క మాటలో చెప్పాలంటే, ప్రతి ఒక్కరూ తనను తాను నిర్ణయిస్తారు: తన స్వంత అనుభవాన్ని వినాలా లేదా ఒక నిర్దిష్ట విద్యా వ్యాసం యొక్క రచయిత యొక్క అభిప్రాయాన్ని వినాలి.
అయితే నేర్చుకోవడం అనేది WordPress లైబ్రరీలలో అనుసరిస్తుంది, కానీ కథనాల ప్రకారం కాదు ... కథనాల నుండి ఒక ఆలోచన లేదా మరొక ఆలోచన మాత్రమే పొందడం సాధ్యమవుతుంది ...
ఎలాగోలా సార్)
... ఆసక్తి ఉన్న వారి కోసం:
మీరు కెర్నల్ యొక్క అన్ని నియమాలను (మరియు, కెర్నల్ డైరెక్టరీలను లోడ్ చేసే క్రమం)) WordPress కోడ్లలో అద్భుతమైన రీతిలో నేర్చుకోవచ్చు.
... కింది కథనాలలో ఒకదానిలో, అటువంటి టాపిక్-బీకర్! ... మరియు ఉపయోగకరమైన పేజీలకు లింక్లు.
! .. సైట్ నవీకరణలకు సభ్యత్వం పొందడం ద్వారా -
... అజ్ఞానంతో విడిపోతున్నా..!
అదనపు functions.php ఫైల్ యొక్క ప్లగిన్ను ఎలా సృష్టించాలి
ప్రశ్నలోని ప్లగ్ఇన్, వాస్తవానికి, ఒక సాధారణ పరిష్కారం, కానీ అధ్యయనం మొదటి నుండి ప్రారంభం కావాలి!
అంతేకాకుండా, వ్యాసంలో తీసుకున్న లక్ష్యాలను సాధించడానికి, శక్తివంతమైన ప్లగిన్లు అవసరం లేదు!
హోస్ట్ కంట్రోల్ ప్యానెల్ (లేదా FTP)కి వెళ్లి ఫైల్ మేనేజర్ని తెరవండి.
ప్లగిన్ల ఫోల్డర్ను తెరిచి, దానిలో మరొక డైరెక్టరీని సృష్టించండి (మా ప్లగ్ఇన్ ఫైల్ల కోసం ఫోల్డర్). లాటిన్లో ఖచ్చితంగా ఏదైనా పేరు. నాకు ఉదాహరణగా "పరీక్ష" అనే పేరు ఉంది.
దయచేసి అడ్మిన్ ప్యానెల్లోని ప్లగిన్ పేరు సమాచార హెడర్ ప్లగిన్ పేరు: పరీక్షలో వ్రాసినట్లుగానే ఉంటుందని గమనించండి (వ్యాఖ్యలను చూడండి).
సృష్టించిన ఫోల్డర్ను తెరిచి, దానిలో ప్రధాన ప్లగ్ఇన్ ఫైల్ను సృష్టించండి:
... పేరుతో, my-functions.php అని చెప్పండి మరియు దాని శరీరానికి అటువంటి పంక్తులను జోడించండి (మరియు ఫైల్ పేరు ఖచ్చితంగా ఏదైనా కావచ్చు)
వ్యాఖ్యలలోని పంక్తులు - అడ్మిన్ ప్యానెల్ (ప్లగిన్ల మెను)లో కనిపించే ప్లగ్ఇన్ గురించిన సమాచారం.
ఫోల్డర్ మరియు ఫైల్ను సృష్టించిన వెంటనే, మీ ప్లగ్ఇన్ అడ్మిన్ ప్యానెల్లో కనిపిస్తుంది. ఒకసారి చూడు.
మాజీగా, మీరు దీన్ని కొంతకాలం సక్రియం చేయవచ్చు - కానీ ఏమీ జరగదు, ప్లగ్ఇన్ ఇప్పటికీ నిష్క్రియంగా ఉంది.
అంతే!! ఒక సాధారణ ప్లగ్-ఇన్ సృష్టించబడింది మరియు విశేషమేమిటంటే, తన స్వంత చేతులతో మరియు తన స్వంత ప్రయోజనం కోసం (పిల్లి మాట్రోస్కిన్ చెప్పినట్లు).
దీంతో షోకు తెర పడింది...
... విచారకరమైన దుమ్ము ర్యాంప్లపై పడుతోంది ...
మరియు మార్గం ద్వారా, "ప్లగిన్లు లేకుండా" సిరీస్ నుండి ఉపయోగకరమైన చిత్రం - చూడండి, వీడియోలో ప్రతిపాదించిన కోడ్ ఫంక్షన్ ఫైల్లో వదిలివేయబడాలా వద్దా అని ఆలోచించండి ??
ఖచ్చితంగా, మీరు కొత్త ఫంక్షనాలిటీని జోడించడానికి మీ WordPress సైట్ కోసం కొంత కోడ్ను జోడించాల్సిన అవసరం ఉందని మీరు పదేపదే గమనించారు. నేను మీ థీమ్ యొక్క హెడర్ భాగంలో మీరు చొప్పించే Google Analytics స్క్రిప్ట్ల గురించి మాట్లాడటం లేదు. నం. మీరు ఇంటర్నెట్లోని ఫోరమ్లలో కనుగొన్న చిన్న కోడ్ స్నిప్పెట్ల గురించి నేను మాట్లాడుతున్నాను మరియు వెంటనే వాటిని మీ ఫైల్కి జోడించడానికి పరిగెత్తాను విధులు.php.
నిజం చెప్పండి, మీరు దీన్ని కనీసం ఒక్కసారైనా చేసారు, కాదా? మరియు ఇది అర్థమయ్యేలా ఉంది, ఎందుకంటే ఇది ఫోరమ్లో వ్రాయబడింది - ఈ కోడ్ను మీ WordPress థీమ్ యొక్క functions.phpకి జోడించండి.
నిజం ఏమిటంటే, మీరు ఇంటర్నెట్లో కనుగొనే ప్రతి కోడ్ను functions.phpకి జోడించడం ఎల్లప్పుడూ మంచి ఆలోచన కాదు... ఈ కోడ్తో మీ స్వంత కస్టమ్ మినీ ప్లగిన్ని సృష్టించడం సురక్షితమైన పరిష్కారం.
ఈ ట్యుటోరియల్లో, మీరు ఏ సందర్భాలలో మీరు functions.phpకి కోడ్ని జోడించవచ్చో మరియు ప్రత్యేక ప్లగిన్ను ఉపయోగించడం ఉత్తమం అని మేము మీకు తెలియజేస్తాము. మీరు కస్టమ్ ప్లగ్ఇన్ని మీరే ఎలా సృష్టించుకోవచ్చో మరియు దానికి మీ కోడ్ని ఎలా జోడించవచ్చో కూడా మేము మీకు చూపుతాము.
ఫంక్షన్స్ అంటే ఏమిటి.php
మీరు ఎప్పుడైనా మీ WordPress సైట్ ఫైల్ల ద్వారా బ్రౌజ్ చేసినట్లయితే, మీరు అనేక functions.php ఫైల్లపై పొరపాట్లు చేసి ఉండవచ్చు. ఈ ట్యుటోరియల్లో మనం మాట్లాడబోయే functions.php ఫైల్ ఫోల్డర్లో ఉంది: wp-contentthemesyour_themefunctions.php.
సహజంగానే, ఇది మీ నిర్దిష్ట థీమ్ యొక్క అన్ని విధులు మరియు సెట్టింగ్లను నిల్వ చేసే అదే ఫైల్, ప్రస్తుతం క్రియాశీలంగా ఉంది... "యాక్టివ్" అనే పదానికి శ్రద్ధ వహించండి, ఎందుకంటే ఇది ఈ పాఠం యొక్క ప్రధాన సందేశం.
ఎల్లప్పుడూ functions.phpని ఉపయోగించడం ఎందుకు చెడ్డ ఆలోచన
నన్ను తప్పుగా భావించవద్దు, రెండు పంక్తులలో చిన్న కోడ్ ముక్కల కోసం functions.phpని ఉపయోగించడం చాలా సాధారణం. మీరు కోడ్ని జోడించే ప్రతిదానికీ రిపోజిటరీగా functions.phpని ఉపయోగించడం అవాంఛనీయమైన వాస్తవం గురించి మేము మాట్లాడుతున్నాము. ఇది ప్రతి పరిస్థితికి ఒకే పరిమాణానికి సరిపోయే పరిష్కారం కాదు.
కారణం # 1.
మీ థీమ్ కోసం ఒక నవీకరణ విడుదల చేయబడితే, మీరు functions.php ఫైల్లో జోడించిన ప్రతిదాన్ని కోల్పోతారు. మీరు ఇప్పుడే ఏమి ఆలోచిస్తున్నారో నాకు తెలుసు - కానీ ఈ పరిస్థితులకు సరైనదేనా?
కోర్సు యొక్క కలిగి. కానీ చైల్డ్ థీమ్ అంటే ఏమిటో తెలియని వ్యక్తులు కూడా చాలా మంది ఉన్నారు. లేదా వారి థీమ్కి కోడ్ని జోడించడంలో సహాయం చేయమని మిమ్మల్ని అడిగిన వ్యక్తులు ఉన్నారు.
కాబట్టి, ఈ కారణం ఈ జాబితాలో ఉంది. మీరు చైల్డ్ థీమ్ని ఉపయోగించకుండా functions.phpకి కోడ్ని జోడిస్తే, ఇది మీ మొదటి మేల్కొలుపు కాల్.
కారణం # 2.
మీరు చైల్డ్ థీమ్ను సరిగ్గా కాన్ఫిగర్ చేసి ఉపయోగించినప్పటికీ. మీరు వేరే డిజైన్ థీమ్కి మారాలనుకుంటే ఏమి జరుగుతుంది? మీ functions.php ఫైల్లో మీరు చేసే ప్రతి మార్పుకు మీరు ఒక వ్యాఖ్యను జోడించారని నేను ఆశిస్తున్నాను, ఎందుకంటే అది లేకుండా, మరొక అంశానికి మారడం చాలా బాధాకరంగా ఉంటుంది. మీకు ఆలోచన వచ్చిందని అనుకుంటున్నాను.
కారణం సంఖ్య 3.
మీరు functions.phpకి కోడ్ని జోడించినట్లయితే, అది పూర్తిగా మీ సైట్ను విచ్ఛిన్నం చేస్తుంది మరియు మీకు ఖాళీ తెల్లటి స్క్రీన్ కనిపించినట్లయితే - "విరిగిన" functions.phpని అప్లోడ్ చేయడానికి మీకు FTP క్లయింట్ అవసరం, దాన్ని సవరించి, దాన్ని తిరిగి సైట్కి అప్లోడ్ చేయండి. తనకే అంత ఆనందం.
functions.php ఎప్పుడు ఉపయోగించాలి
ప్రస్తుతం యాక్టివ్గా ఉన్న చైల్డ్ థీమ్ కోసం functions.phpని సరిగ్గా ఉపయోగించడం చెల్లుబాటు అయ్యే ఎంపిక. కానీ గుర్తుంచుకోండి, నేను ఈ పదంపై దృష్టి పెట్టాను " చురుకుగా"?
మీరు ఈ నిర్దిష్ట థీమ్తో పని చేస్తున్నప్పుడు మాత్రమే అర్ధమయ్యే కోడ్ భాగాలను జోడిస్తే, మీరు సురక్షితంగా functions.php (పిల్లల థీమ్లో) ఉపయోగించవచ్చు. ఇది సముచితంగా ఉండే కొన్ని ఉదాహరణలు ఇక్కడ ఉన్నాయి:
- మీ థీమ్ కోసం మరొక స్టైల్షీట్ (.css) జోడిస్తోంది
- సైట్ మెరుగ్గా కనిపించేలా చేయడానికి పోస్ట్ ఎక్సెర్ప్ట్ పొడవును మార్చండి
- ప్రస్తుత థీమ్ కోసం అనుకూల ఫాంట్లను జోడిస్తోంది
- ప్రస్తుత థీమ్ను అనువదించడానికి స్థానికీకరణ ఫైల్ను జోడిస్తోంది
మరో మాటలో చెప్పాలంటే, మీరు నిర్దిష్ట ప్రస్తుత థీమ్కు సంబంధించిన ఏదైనా జోడించినప్పుడు లేదా మార్చినప్పుడు, functions.phpని ఉపయోగించడానికి సంకోచించకండి.
ఎప్పుడు ఫంక్షన్లు లేకుండా చేయడం మంచిది.php
మరొక థీమ్ కోసం సిద్ధాంతపరంగా మీకు ఉపయోగపడే మరిన్ని గ్లోబల్ విషయాలు మరియు ఫంక్షన్లను జోడించడానికి functions.phpని ఉపయోగించడం చెడ్డ ఆలోచన.
Functions.php లేకుండా చేయడం ఉత్తమం అనేదానికి ఇక్కడ కొన్ని ఉదాహరణలు ఉన్నాయి:
- మీరు తరచుగా ఉపయోగించే అనుకూల విడ్జెట్లను సృష్టిస్తోంది
- అనుకూల షార్ట్కోడ్లను సృష్టిస్తోంది
- థీమ్-ఇండిపెండెంట్ కోడ్ (Google Analytics కోడ్ మొదలైనవి) జోడిస్తోంది.
అటువంటి సందర్భాలలో, మీ థీమ్తో సంబంధం లేకుండా ఈ కోడ్ని ఉంచడం ఉత్తమం. మరియు మీరు దీన్ని అనుకూల ప్లగిన్లతో చేయవచ్చు.
మీరు ఇప్పుడు ఆలోచిస్తున్నారు - ప్లగ్ఇన్ని సృష్టించడంపై అయోమయం, మీరు functions.phpని ఎప్పుడు సవరించగలరు? ఇది చాలా కష్టం! నన్ను నమ్మండి, ఇది అలా కాదు. ఇది చాలా త్వరగా మరియు సులభంగా చేయబడుతుంది.
functions.phpకి బదులుగా కస్టమ్ ప్లగిన్ని ఎలా సెటప్ చేయాలి
మీ కోడ్ని నిల్వ చేయడానికి మీ స్వంత అనుకూల ప్లగిన్ని సృష్టించడానికి, మీకు ఇవి అవసరం:
- మీ కోడ్తో టెక్స్ట్ ఫైల్ను సృష్టించండి మరియు దానిని .php ఫైల్గా సేవ్ చేయండి
- ఫలితంగా వచ్చిన .php ఫైల్ను .zip ఆర్కైవ్లో ప్యాక్ చేయండి
- మెనులో ఈ ఆర్కైవ్ను సాధారణ WordPress ప్లగిన్గా ఇన్స్టాల్ చేయండి ప్లగిన్లు → కొత్తవి జోడించండి
అంతే, కేవలం 3 చర్యలు.
దశ 1. మీ కోడ్తో .php ఫైల్ని సృష్టించండి
మీ కంప్యూటర్లో నోట్ప్యాడ్ని తెరిచి, కింది వచనాన్ని అతికించండి:
మీరు ప్లగిన్ నేమ్ లైన్లోని ప్లగిన్ కోసం మీ పేరును ఉపయోగించవచ్చు:
ఫైల్ను సేవ్ చేసి, దానికి కొన్ని ప్రత్యేకమైన పేరును ఇవ్వండి, తద్వారా WordPress ఇప్పటికే ఇన్స్టాల్ చేసిన వాటితో మీ ప్లగ్ఇన్ను గందరగోళపరచదు. ఉదాహరణకు: wpcafe-custom-functions.php.
అవును, సేవ్ చేసేటప్పుడు "అన్ని ఫైల్లు" ఫైల్ రకాన్ని ఎంచుకోవడం మరియు .php పొడిగింపును జోడించడం మర్చిపోవద్దు:
దశ 2. .zip ఆర్కైవ్ను సృష్టించండి
ఇక్కడ ఎలాంటి వివరణ అవసరం లేదని నేను భావిస్తున్నాను. ఏదైనా అనుకూలమైన ఆర్కైవర్లో మీ ఫైల్తో .zip ఆర్కైవ్ను సృష్టించండి.
దశ 3. సాధారణ ప్లగిన్గా ఇన్స్టాల్ చేయండి
సులభమైన భాగం. మీ WordPress అడ్మిన్ వద్దకు వెళ్లండి ప్లగిన్లు → కొత్తవి జోడించండిమరియు మీ ఆర్కైవ్ను సాధారణ ప్లగిన్గా అప్లోడ్ చేయండి.
మీరు దీన్ని సక్రియం చేసిన తర్వాత, మీరు ఇన్స్టాల్ చేసిన అన్ని ఇతర ప్లగిన్ల జాబితాలో మీ కొత్త ప్లగిన్ని చూడగలరు:
మీ కోడ్ను ఎలా జోడించాలి
మీ కోడ్ స్నిప్పెట్ని జోడించడానికి, మీరు సృష్టించిన .php ఫైల్లో అతికించండి. లేదా, మీరు ఎల్లప్పుడూ రెండు వేర్వేరు ఫంక్షన్ల కోసం మరొక ప్రత్యేక ప్లగ్ఇన్ను తయారు చేయవచ్చు.
ఉదాహరణకు, మీరు "హలో వరల్డ్!" షార్ట్కోడ్ను చేయాలనుకుంటే మీ .php ఫైల్ ఇలా ఉంటుంది:
ఈ వ్యాఖ్యలు మీ కోడ్ పనితీరును మరియు ప్లగ్ఇన్ అమలు వేగాన్ని ఏ విధంగానూ ప్రభావితం చేయవు. కానీ వాటితో మీరు నావిగేట్ చేయడం మరియు మీరు జోడించే ప్రతి ఫంక్షన్ ఏమి చేస్తుందో గుర్తుంచుకోవడం సులభం అవుతుంది.
మీ వ్యాఖ్యను స్లాష్ మరియు ఆస్టరిస్క్ సింటాక్స్లో వ్రాప్ చేయండి: /* మీ అభిప్రాయం */
మీ కోడ్లో మార్పులు చేసిన తర్వాత, మీరు FTP ద్వారా .php ఫైల్ని మళ్లీ లోడ్ చేయవచ్చు లేదా కొత్త .zip ఆర్కైవ్ని సృష్టించి, కొత్త ప్లగిన్గా అప్లోడ్ చేసి పాతదాన్ని తొలగించవచ్చు.
Functions.phpని సవరించడాన్ని నివారించడానికి ఇతర మార్గాలు
పెద్దగా, మీరు మీ సామర్థ్యాలపై తగినంత నమ్మకం కలిగి ఉంటే మరియు functions.phpకి కోడ్ను ఎలా జోడించాలో తెలిస్తే, మీకు అనుకూల ప్లగిన్లతో ఎలాంటి ఇబ్బందులు ఉండకూడదు. ఇక్కడ కష్టం ఏమీ లేదు.
అయితే వీటన్నింటిని మాన్యువల్గా టింకర్ చేయాలనే కోరిక మీకు లేకుంటే మేము బాగా అర్థం చేసుకున్నాము. ఇప్పటికీ, ఇది WordPress. అందువల్ల, ఉచిత కోడ్ స్నిప్పెట్స్ ప్లగ్ఇన్ ఉపయోగపడవచ్చు, ఇది మీ అదనపు కోడ్ని సైట్కి జోడించడాన్ని సులభతరం చేస్తుంది:
ఈ ప్లగ్ఇన్తో, మీరు విభిన్న కోడ్ స్నిప్పెట్లను జోడించవచ్చు, వాటికి పేరు, వివరణ ఇవ్వండి, ఒకటి లేదా మరొక కోడ్ను ఎంపిక చేసి సక్రియం చేయవచ్చు మరియు నిష్క్రియం చేయవచ్చు.
మరొక అద్భుతమైన ఫీచర్ ఏమిటంటే, మీరు సైట్ల మధ్య మీ కోడ్ స్నిప్పెట్లను దిగుమతి / ఎగుమతి చేయవచ్చు.
ఫలితాలను
ఇది చిన్న వివరాలలా అనిపించవచ్చు, కానీ మీ అదనపు కోడ్ యొక్క సరైన స్థానం భవిష్యత్తులో ఇతర థీమ్ల మధ్య సులభంగా మారడానికి మిమ్మల్ని అనుమతిస్తుంది. మీరు ప్రతి అదనపు ఫంక్షన్ను ప్రత్యేక ప్లగిన్ల మధ్య విభజించినట్లయితే మీరు ఒకటి లేదా మరొక కార్యాచరణను విడిగా ప్రారంభించవచ్చు లేదా నిలిపివేయవచ్చు.
కాబట్టి ఈ పద్ధతి నిజంగా శ్రద్ధకు అర్హమైనది.
cms mysql (4)
WordPress వంటి CMSలో మీరు తరచుగా కనుగొనే ప్రాథమిక ప్లగ్ఇన్ సిస్టమ్ని సృష్టించడానికి నేను ప్రయత్నిస్తున్నాను. మీరు నోటిఫికేషన్లను ఉపయోగించి ప్రధాన సిస్టమ్ ఆపరేషన్తో ముడిపడి ఉన్న ప్లగిన్ల ఫోల్డర్ను కలిగి ఉన్నారు నుండి పరిణామాలుడిజైన్ నమూనాను ఉపయోగించడం పరిశీలకుడులేదా ఈవెంట్ .
సమస్య ఏమిటంటే సిస్టమ్తో తెలుసుకోలేము ఏ సంఘటనలుప్లగ్ఇన్ పని చేయాలనుకుంటోంది - కాబట్టి సిస్టమ్ ప్రతి పేజీ అభ్యర్థన కోసం ప్రతి ప్లగిన్ను లోడ్ చేయాల్సి ఉంటుంది, ఆ ప్లగ్ఇన్ ఏదో ఒక సమయంలో నిజంగా అవసరమా అని చూడడానికి. ఇది చాలా వృధా వనరులు అని ప్రత్యేకంగా చెప్పనవసరం లేదు - WordPress విషయంలో, ఇది ప్రతి అభ్యర్థనకు కొన్ని అదనపు MBల మెమరీని జోడిస్తుంది!
దీన్ని చేయడానికి ప్రత్యామ్నాయ మార్గాలు ఉన్నాయా?
ఉదాహరణకు, మొత్తం విషయాన్ని ఒకసారి లోడ్ చేసి, ఆపై ఫలితాలను కాష్ చేయడానికి ఏదైనా మార్గం ఉందా, తద్వారా మీ సిస్టమ్కు సోమరితనం లోడింగ్ ప్లగిన్ల గురించి తెలుసు? మరో మాటలో చెప్పాలంటే, ప్లగ్ఇన్ బైండ్ చేయాలనుకుంటున్న అన్ని ఈవెంట్లను జాబితా చేసే కాన్ఫిగర్ ఫైల్ను సిస్టమ్ లోడ్ చేసి, ఆపై వాటిని APCలో లేదా భవిష్యత్తు అభ్యర్థనల కోసం ఏదైనా నిల్వ చేస్తుందా?
అది కూడా సరిగ్గా పని చేయకపోతే, అభ్యర్థనను నెరవేర్చడానికి నిర్దిష్ట ప్లగిన్లు అవసరం లేనప్పుడు విద్యావంతులైన అంచనాలను రూపొందించడానికి బహుశా ఒక ప్రత్యేక ఫైల్ నిర్మాణాన్ని ఉపయోగించవచ్చు.
సమాధానాలు
నా దగ్గర ప్లగిన్ మేనేజ్మెంట్ టూల్ ఉంది, కానీ నేను దానిని విధానపరమైన ప్లగిన్లతో మాత్రమే ఉపయోగిస్తాను మరియు అన్నీ చేర్చబడినప్పుడు ఇది సాధారణంగా వెంటనే లోడ్ అవుతుంది. కానీ ఈవెంట్ ఆధారిత API మరియు లేజీ లోడింగ్ కోసం, ప్లగిన్లను నిర్వహించడానికి నిస్సారమైన రేపర్లను ఉపయోగించడం మరియు వాస్తవ పొడిగింపుల కోసం ఆటో లోడింగ్ని ఆశ్రయించడాన్ని నేను ఊహించగలను.
php / ** * api: ఏమైనా * వెర్షన్: 0.1 * శీర్షిక: ప్లగ్ఇన్ ఉదాహరణ * వివరణ: ... * config: * ఆధారపడి ఉంటుంది: ఇతర ప్లగిన్ * /$ ప్లగిన్లు ["title_event"] = "TitleEventClass"; $ ప్లగిన్లు ["సెకండరీ"] = అర్రే ("క్లాస్2", "కాల్బ్యాక్"); ?>ఈ ఉదాహరణ కోసం, ప్లగ్ఇన్ API ఒక సాధారణ జాబితా అని నేను ఊహిస్తున్నాను. ఈ ఉదాహరణ స్క్రిప్ట్ ఫీచర్-ప్లగ్ఇన్-123.php లోడ్లో ఉన్న శ్రేణికి జోడించడం తప్ప మరేమీ చేయదు. ఈ విధంగా, మీరు డజను ఫీచర్ ప్లగిన్లను కలిగి ఉన్నప్పటికీ, ఇది ప్రతి ఒక్కదానికి అదనంగా చేర్చడం_ఒన్స్కి మాత్రమే దారి తీస్తుంది.
కానీ ప్రధాన అప్లికేషన్ / లేదా ప్లగ్ఇన్ API బదులుగా పేర్కొన్న తరగతులను (కొత్త $ Eventcb; raw-call_user_func_array కోసం లేదా కాల్బ్యాక్ల కోసం call_user_func_array కోసం) ఇన్స్టాంటియేట్ చేయగలదు. ప్రతిగా, ఇది ఆటోలోడర్కు అసలు పనిని లోడ్ చేస్తుంది. కాబట్టి మీకు డ్యూయల్ సిస్టమ్ ఉంది, ఇక్కడ ఒక భాగం జాబితాను నిర్వహిస్తుంది, మరొకటి నిజమైన కోడ్.
నేను ఇప్పటికీ ఇలాంటి ప్లగిన్లు మరియు సెట్టింగ్లను జాబితా చేసే సరళమైన config.phpని ఊహించుకుంటున్నాను:
php include_once ("user/feature-plugin-123.php" ); include_once ("user/otherplugin2.php" ); include_once ("user / wrapper-for-htmlpurifier.php"); $ cfg ["అందంగా"] = 1;నిర్వహణ కోసం ప్లగిన్ యొక్క వివరణతో ఇవి కేవలం డేటా రేపర్లు / స్క్రిప్ట్లు మాత్రమే అని మళ్లీ పరిగణనలోకి తీసుకుంటారు. మీరు వాస్తవ రిజిస్టర్_ఈవెన్ () APIని కూడా ఉపయోగించవచ్చు మరియు ప్రతి దానిలో అదనపు రేపర్ ఫంక్షన్ను నిర్వచించవచ్చు. కానీ చల్లని పేర్ల జాబితా సులభమైన ఎంపికగా కనిపిస్తుంది.
పై నిర్వహణ సాధనం తుప్పుపట్టినట్లు మరియు అగ్లీగా కనిపిస్తోంది: http://milki.include-once.org/genericplugins/
మీకు కావలసినది జాబితా (sql పట్టిక) మరియు సెట్టింగ్ల నిర్వహణ అయితే అది ఉపయోగించబడదు. ఈ ఓవర్హెడ్ ప్లగ్ఇన్ మెటాడేటాను చక్కగా ముద్రించడానికి మరియు చదవగలిగే config.phpని ఉంచడానికి మాత్రమే.
చివరగా:
spl_autoload () to include_path మరియు సింపుల్ కేస్ ఈవెంట్-> తరగతి పేరు, ఒక్కొక్కటి ఒక రేపర్ స్క్రిప్ట్, అన్నింటినీ ఒకేసారి చేర్చండి.
నేను ప్లగిన్ క్లాస్ పేరుతో పాటు సంతకం చేసిన ఈవెంట్లను కాన్ఫిగర్ ఫైల్లో నిల్వ చేస్తాను మరియు ఉదాహరణకు పార్స్ చేసిన కాన్ఫిగర్ ఫైల్ను APCకి సేవ్ చేస్తాను. అప్పుడు, ఈవెంట్ కాల్పులు జరిగినప్పుడు, సిస్టమ్ అవసరమైన విధంగా తగిన ప్లగ్ఇన్ తరగతులను సోమరితనంగా లోడ్ చేస్తుంది.
Wordpress మరియు ఇతర CMS వ్యవస్థలు చాలా చెడ్డ ఉదాహరణలు.
మాడ్యులర్ అంటే దాదాపు ఎల్లప్పుడూ బరువుగా ఉంటుందని మనం అర్థం చేసుకోవాలి.
ఈ పరిస్థితిని పరిష్కరించడానికి నేను ఇప్పటివరకు పనిచేసిన అత్యుత్తమ స్కీమ్ క్లాస్ ఆధారిత ప్లగ్ఇన్, ఇది ఆటోలోడర్ని ఉపయోగించి కఠినమైన పేరు పెట్టడం.
అందువల్ల, మీరు ప్లగ్ఇన్ను ఉపయోగించే ముందు స్టాటిక్ ఫంక్షన్లను తక్షణం లేదా ఉపయోగించాలి.
మీరు ప్లగిన్కి కూడా కాల్ చేయవచ్చు:
php $thePlugin :: method (); ?>ఉదాహరణకి:
php spl_autoload_register ("systemAutoload" ); function systemAutoload ($class ) { $parts = explode ("_" , $class ); switch ($parts [ 1 ]) { case "Plugin" : include ("/plugins/($parts)/($parts).php"); బ్రేక్; ) // ...)?>సంఘటనల విషయానికొస్తే:
డైనమిక్ మార్పును నివారించడానికి మీరు తప్పనిసరిగా ఈ ఈవెంట్ను స్థిరంగా నమోదు చేసుకోవాలి.
డేటాబేస్ దీనికి సరైన స్థలం అవుతుంది. మీరు ఈవెంట్ టేబుల్లను కలిగి ఉండవచ్చు మరియు నిర్దిష్ట ఈవెంట్లను జోడించడానికి లేదా ఇతర ఈవెంట్లకు బైండ్ పద్ధతులను జోడించడానికి ప్లగిన్ క్లాస్లో () మరియు అన్ఇన్స్టాల్ () పద్ధతులను ఇన్స్టాల్ చేయవచ్చు. ఇది ఒక డేటాబేస్ ప్రశ్న, మరియు మీరు దీని నుండి మరింత పొందాలనుకుంటే, దీన్ని memcached లేదా flat ini ఫైల్కి జోడించండి.
నాకు బాగా పని చేస్తుంది. ఈ విధంగా నేను 1MBకి పడిపోవడానికి అభ్యర్థనకు 8MB వినియోగించే భారీ సిస్టమ్ను పొందగలిగాను, సరిగ్గా అదే ఫీచర్ జాబితాతో, ప్రీ-కాషింగ్ లేదు. ఇప్పుడు మనం మరిన్ని ఫీచర్లను జోడించి, సిస్టమ్ను "క్లీన్"గా ఉంచుకోవచ్చు
ఇది సహాయపడుతుందని ఆశిస్తున్నాను
వారితో కోడింగ్ ప్రారంభించడం ఉత్తమ మార్గం. డిజైన్ నమూనాలు గొప్ప భావన, వాటి గురించి చదవడం ద్వారా దరఖాస్తు చేయడం కష్టం. మీరు ఇంటర్నెట్లో కనుగొనే కొన్ని ఉదాహరణ అమలులను తీసుకోండి మరియు వాటి చుట్టూ నిర్మించండి.
ఒక గొప్ప వనరు డేటా మరియు ఆబ్జెక్ట్ పేజీ. వారు టెంప్లేట్ల ద్వారా వెళ్లి మీకు సంభావిత మరియు వాస్తవ-ప్రపంచ ఉదాహరణలను అందిస్తారు. వారి రిఫరెన్స్ మెటీరియల్ కూడా చాలా బాగుంది.
ఇది మీ WordPress థీమ్లోని ప్రధాన ఫైల్. / wp-content / థీమ్స్ / (ఇక్కడ మీ థీమ్ పేరు ఉంది) /functions.php లో ఉంది.
ఇది థీమ్ యొక్క ముఖ్యమైన లక్షణాలను నిర్వచిస్తుంది, హుక్స్, రూపాన్ని మరియు కార్యాచరణను అనుకూలీకరిస్తుంది మరియు మీకు అవసరమైన కొన్ని లక్షణాలను కూడా జోడిస్తుంది. మీరు ఏదైనా WordPress పేజీని తెరిచిన ప్రతిసారీ ఈ ఫైల్ లోడ్ అవుతుంది, కాబట్టి ఇది సైట్లోని ఏదైనా మూలకాన్ని సవరించడానికి ఉపయోగించబడుతుంది. ఈ విషయంలో, చాలా చిట్కాలు లా " ప్లగిన్లు లేకుండా WordPressలో ఏదైనా మార్చడం ఎలా
»తరచుగా ఈ ఫంక్షనాలిటీ కోసం ప్రత్యేక ప్లగ్ఇన్ని సృష్టించే బదులు లేదా రెడీమేడ్ సొల్యూషన్ని ఉపయోగించకుండా, functions.phpకి మార్పులు చేయడం ఆందోళన చెందుతుంది. ఇది తరచుగా ఈ ఫైల్ యొక్క సమాచార ఓవర్లోడ్కి దారి తీస్తుంది, కోడ్ని అన్వయించడం కష్టతరం చేస్తుంది మరియు దిద్దుబాట్లను మరింత కష్టతరం చేస్తుంది. కానీ ఇది అత్యంత ప్రమాదకరమైన విషయం కాదు. అత్యంత ప్రమాదకరమైన విషయం ఏమిటంటే సక్రియ థీమ్ను మార్చినప్పుడు, సైట్ యొక్క అవసరమైన కార్యాచరణలో కొంత భాగం లేదా మొత్తం పోతుంది.
ఫంక్షన్లు.php ప్లగ్ఇన్ నుండి ఎలా భిన్నంగా ఉంటుంది
ఏమిలేదు. దాని ప్రధాన భాగంలో, functions.php అనేది ప్రస్తుత థీమ్తో ముడిపడి ఉన్న ఒక రకమైన గ్లోబల్ నాన్-స్విచ్చబుల్ ప్లగ్ఇన్. Wp-settings.phpలో WordPressలో ఇది ఎలా కనెక్ట్ అవుతుందో మీరు చూడవచ్చు. మీరు సోర్స్ కోడ్ నుండి చూడగలిగినట్లుగా, ఇది అన్ని ప్లగిన్ల తర్వాత లోడ్ చేయబడుతుంది, అయినప్పటికీ, కనెక్ట్ చేయబడిన ప్లగిన్లలో ఏదో ఒకదానిని భర్తీ చేసే సామర్థ్యం తప్ప, ఇది ఏవైనా ప్రతికూలతలు లేదా ప్రయోజనాలను ఇవ్వదు. ఇది కోడ్ అమలు వేగాన్ని కూడా ప్రభావితం చేయదు. ప్లగిన్లు మరియు functions.php యొక్క కంటెంట్ మాత్రమే ప్రభావితమవుతుంది. అందువల్ల, మీ థీమ్ కోసం సక్రియ ప్లగిన్లను ఎన్నుకునేటప్పుడు జాగ్రత్తగా ఉండండి మరియు అనవసరమైన, మీకు తక్కువ ఉపయోగాన్ని వదులుకోండి, అప్పుడు మీరు మీ సైట్ను తేలికపరచవచ్చు మరియు దాని పనిని వేగవంతం చేయవచ్చు.
functions.php ఎప్పుడు ఉపయోగించాలి
కింది నియమం ద్వారా మార్గనిర్దేశం చేయండి: ఫంక్షనాలిటీ నేరుగా ప్రస్తుత థీమ్కు సంబంధించినది అయితే, సైట్ యొక్క ఆపరేషన్కు కాకుండా, దాన్ని functions.phpలో వ్రాయండి.
ఉదాహరణకు, అది కావచ్చు
- సూక్ష్మచిత్రాలను సెటప్ చేస్తోంది
- సైడ్బార్ పరిమాణాలను సెట్ చేస్తోంది
- విడ్జెట్ల కోసం స్థలాలను సెటప్ చేస్తోంది
- నావిగేషన్ మెను కింద స్థలాల ప్రకటన
- థీమ్ సెట్టింగ్లు
- మీ థీమ్ యొక్క అదనపు లక్షణాలు
functions.phpని ఎప్పుడు ఉపయోగించకుండా నివారించాలి
యాక్టివ్ థీమ్ను మార్చేటప్పుడు కూడా ఫంక్షనాలిటీ పని చేస్తే, మీరు దానిని ప్రత్యేక ప్లగ్ఇన్లో ఉంచడానికి జాగ్రత్త తీసుకోవాలి.
వీటితొ పాటు:
- హాజరు కౌంటర్ల నిర్వచనం (Google Analytics, Yandex.Metrika, Liveinternet)
- నిర్వాహక పానెల్ యొక్క అదనపు కార్యాచరణను సెటప్ చేస్తోంది (ఉదాహరణకు)
- సోర్స్ కోడ్ () కాన్ఫిగర్ చేస్తోంది
- షార్ట్కోడ్లను నిర్వచించడం
- నమోదు
జాబితాలు అసంపూర్ణంగా ఉన్నాయి, మీరు వాటి కంటెంట్ను మీరే నిర్వచించవచ్చు.
functions.phpలో లేకపోతే నేను ఈ కోడ్ని ఎక్కడ జోడించగలను? మీరు వాటి కోసం ప్రత్యేక ప్లగిన్లను వ్రాయవచ్చు, అయితే, మరింత ఆసక్తికరమైన మరియు సరళమైన మార్గం ఉంది.
mu-plugins functions.phpకి ప్రత్యామ్నాయం
WordPress MU (మల్టీ-యూజర్) నుండి WordPress యొక్క ఆధునిక వెర్షన్లలో ఒక ఆసక్తికరమైన కార్యాచరణ మాకు వచ్చింది MU ప్లగిన్లు... దాని సారాంశం క్రింది విధంగా ఉంది. WordPress MU అడ్మినిస్ట్రేటర్ కొన్నిసార్లు సైట్ల మొత్తం నెట్వర్క్ కోసం ప్లగిన్లను నిర్వచించవలసి ఉంటుంది. ఇది సాధారణ కార్యాచరణతో సాధించబడదు, కాబట్టి ఒక ప్రత్యేక విభాగం ప్రవేశపెట్టబడింది: / wp-content / mu-plugins /, అవి నిర్వచించబడ్డాయి. మరొక ఆసక్తికరమైన విషయం ఏమిటంటే, ఈ డైరెక్టరీ నుండి ప్లగ్ఇన్ ఫైల్లు అన్నింటి కంటే ముందు లోడ్ చేయబడతాయి, ఇది కొన్ని స్థిరాంకాలు లేదా సెట్టింగ్లను ముందే నిర్వచించడాన్ని సాధ్యం చేస్తుంది.
తరువాత WPMU రద్దు చేయబడింది, దాని కోడ్ ప్రధాన బ్లాగింగ్తో అనుసంధానించబడింది మరియు ఇప్పుడు ఏ WordPress అయినా MU-ప్లగిన్ల కార్యాచరణను ఉపయోగించవచ్చు, ఇది ఇప్పుడు సూచిస్తుంది తప్పక ఉపయోగించాలి, అంటే, ఉపయోగం కోసం తప్పనిసరి.
ము-ప్లగిన్లను ఎలా ఉపయోగించాలి
ముందుగా, మీరు ఒక ప్రత్యేక విభాగం / wp-content / mu-plugins / సృష్టించాలి
మేము దానిలో అవసరమైన ప్లగ్ఇన్ ఫైళ్ళను ఉంచాము. సంప్రదాయ ప్లగిన్ల వలె కాకుండా, ప్రత్యేక సింటాక్స్కు కట్టుబడి ఉండవలసిన అవసరం లేదు మరియు కార్యాచరణను నేరుగా ప్రకటించవచ్చు
ఇక్కడ, ఉదాహరణకు, హాజరు కౌంటర్ల కోడ్తో ఫైల్ సృష్టించబడింది.
లోపల, ఈ ఫైల్ ఇలా కనిపిస్తుంది
// ... ఈ లైన్కు బదులుగా, కౌంటర్ కోడ్ను చొప్పించండి ...
అడ్మిన్ ప్రాంతంలో, ఇది కనిపిస్తుంది అవసరం
8 సమాధానాలు
మీరు అబ్జర్వర్ నమూనాను ఉపయోగించవచ్చు. దీన్ని సాధించడానికి ఒక సాధారణ క్రియాత్మక మార్గం:
అవుట్పుట్:
ఇది నా క్రేజీ అప్లికేషన్ 4 + 5 = 9 4 * 5 = 20
గమనికలు:
ఈ ఉదాహరణ సోర్స్ కోడ్లో, మీరు పునరుద్ధరించాలనుకుంటున్న అసలు సోర్స్ కోడ్కు ముందు మీ అన్ని ప్లగిన్లను తప్పనిసరిగా ప్రకటించాలి. ప్లగ్ఇన్కు పంపబడిన ఒకటి లేదా అంతకంటే ఎక్కువ విలువలను ఎలా నిర్వహించాలో నేను ఒక ఉదాహరణను చేర్చాను. ప్రతి హుక్కు ఏ ఆర్గ్యుమెంట్లు పంపబడతాయో జాబితా చేసే వాస్తవ డాక్యుమెంటేషన్ను వ్రాయడం ఇందులో కష్టతరమైన భాగం.
PHPలో ప్లగిన్ సిస్టమ్ని సృష్టించడానికి ఇది ఒక మార్గం. మంచి ప్రత్యామ్నాయాలు ఉన్నాయి, మరింత సమాచారం కోసం WordPress డాక్యుమెంటేషన్ని తనిఖీ చేయమని నేను మీకు సూచిస్తున్నాను.
క్షమించండి, అండర్స్కోర్లు HTML మార్క్డౌన్ ఎంటిటీలతో భర్తీ చేయబడినట్లు అనిపిస్తుందా? ఈ బగ్ పరిష్కరించబడినప్పుడు నేను ఈ కోడ్ని రీపోస్ట్ చేయగలను.
సవరించండి: పర్వాలేదు, మీరు సవరించినప్పుడు మాత్రమే ఇది కనిపిస్తుంది
కాబట్టి మీకు అబ్జర్వర్ నమూనా అవసరం లేదని చెప్పండి ఎందుకంటే మీరు వినడం పనిని నిర్వహించడానికి తరగతి యొక్క పద్ధతులను మార్చడం అవసరం మరియు మీకు ఉమ్మడిగా ఏదైనా కావాలి. మరియు మీరు విస్తరించిన వారసత్వాన్ని ఉపయోగించకూడదనుకుందాం, ఎందుకంటే మీరు ఇప్పటికే మీ తరగతిని వేరే తరగతి నుండి వారసత్వంగా పొందవచ్చు. ఏదైనా తరగతిని అప్రయత్నంగా ప్లగ్ చేయగలిగేలా చేయడానికి సాధారణ మార్గాన్ని కలిగి ఉండటం గొప్పది కాదా? ఇక్కడ ఎలా ఉంది:
_Class = get_class (& $ RefObject); $ ఈ -> _ RefObject = $ RefObject; ) పబ్లిక్ ఫంక్షన్ __సెట్ ($ sProperty, $ మిక్స్డ్) ($ sPlugin = $ ఇది -> _ క్లాస్. "_". $ sProperty. "_setEvent"; అయితే (is_callable ($ sPlugin)) ($ mixed = call_user_func_array ($ sPlugin, $ mixed);) $ this -> _ RefObject -> $ sProperty = $ mixed;) పబ్లిక్ ఫంక్షన్ __get ($ sProperty) ($ asItems = (శ్రేణి) $ this -> _ RefObject; $ mixed = $ asItems [$ sProperty] ; $ sPlugin = $ ఇది -> _ క్లాస్. "_". $ sProperty. "_getEvent"; అయితే (is_callable ($ sPlugin)) ($ mixed = call_user_func_array ($ sPlugin, $ mixed);) తిరిగి $ మిక్స్డ్;) పబ్లిక్ ఫంక్షన్ __call ($ sMethod, $ మిక్స్డ్) ($ sPlugin = $ ఇది -> _ క్లాస్. "_". $ sMethod. "_beforeEvent"; అయితే (is_callable ($ sPlugin)) ($ mixed = call_user_func_array ($ sPlugin, $ mixed );) అయితే ($ mixed! = "BLOCK_EVENT") (call_user_func_array (array (& $ this -> _ RefObject, $ sMethod), $ mixed); $ sPlugin = $ this -> _ Class. "_". $ sMethod . "_afterEvent"; అయితే ( is_callable ($ sPlugin)) (call_user_func_array ($ sPlugin, $ mixed);)))) // ముగింపు తరగతి ప్లగిన్ క్లాస్ ప్లగిన్ ప్లగిన్ను పొడిగిస్తుంది () // ముగింపు తరగతి Pl uggable ////////////////////// // PART 2 ////////////////// తరగతి కుక్క (పబ్లిక్ $ పేరు = ""; పబ్లిక్ ఫంక్షన్ బెరడు (& $ sHow) (echo "$ sHow
\ n ";) పబ్లిక్ ఫంక్షన్ సేనేమ్ () (ఎకో"
\ nనా పేరు: ". $ this-> పేరు."
\ n ";)) // ఎండ్ క్లాస్ డాగ్ $ డాగ్ = కొత్త డాగ్ (); ////////////////// PART 3 //////// ////////// mixed = "BLOCK_EVENT"; // మీరు ఈవెంట్ రిటర్న్ $ మిక్స్డ్ని బ్లాక్ చేయాలనుకుంటే, ఫంక్షన్ Dog_bark_afterEvent (& $ mixed) (echo $ mixed; // ఓవర్రైడ్ని చూపించు) ఫంక్షన్ Dog_Name_setEvent (& $ mixed) ($ mixed = " కోకో"; // "కోకో" రిటర్న్ $ మిక్స్డ్తో "ఫిడో"ని ఓవర్రైడ్ చేయండి ////////////////// // భాగం 4 ////////////////// $ PDog-> పేరు = "ఫిడో "; $ PDog-> బార్క్ ("మియావ్"); $ PDog-> SayName (); ప్రతిధ్వని "నా కొత్త పేరు:". $ PDog-> పేరు;
మొదటి భాగం మీరు మీ PHP స్క్రిప్ట్ ఎగువన అవసరమైన_ఒన్స్ () కాల్తో చేర్చవచ్చు. ఇది ఏదైనా ప్లగ్ చేయగలిగేలా చేయడానికి తరగతులను లోడ్ చేస్తుంది.
పార్ట్ 2లో, మేము తరగతిని లోడ్ చేస్తాము. గమనిక. అబ్జర్వర్ ప్యాటర్న్కి భిన్నంగా ఉండే క్లాస్ కోసం నేను ప్రత్యేకంగా ఏమీ చేయనవసరం లేదు.
పార్ట్ 3లో, మేము మా తరగతిని "ప్లగ్ చేయదగిన"కి మారుస్తాము (అనగా క్లాస్ యొక్క పద్ధతులు మరియు లక్షణాలను భర్తీ చేయడానికి అనుమతించే ప్లగిన్లను నిర్వహించండి). కాబట్టి, ఉదాహరణకు, మీకు వెబ్ అప్లికేషన్ ఉంటే, మీరు ప్లగిన్ రిజిస్ట్రీని కలిగి ఉండవచ్చు మరియు మీరు ఇక్కడ ప్లగిన్లను సక్రియం చేయవచ్చు. Dog_bark_beforeEvent () ఫంక్షన్ని కూడా గమనించండి. నేను రిటర్న్ స్టేట్మెంట్కు ముందు $ mixed = "BLOCK_EVENT"ని సెట్ చేస్తే, అది కుక్క మొరగకుండా బ్లాక్ చేస్తుంది మరియు ఈవెంట్ జరగనందున Dog_bark_afterEventని కూడా బ్లాక్ చేస్తుంది.
పార్ట్ 4లో, అది సాధారణ ఆప్కోడ్, కానీ మీరు అనుకున్నది ఇలా పని చేయదని గమనించండి. ఉదాహరణకు, కుక్క అతనిని "ఫిడో" అనే పేరుతో ఉచ్ఛరించదు కానీ "కోకో". కుక్క మియావ్ అనదు, కానీ హూఫ్. మరియు మీరు కుక్క పేరును తర్వాత చూడాలనుకున్నప్పుడు, అది "కోకో" కాదు "ఇతరాలు" అని మీరు కనుగొంటారు. ఈ ఓవర్రైడ్లన్నీ పార్ట్ 3లో ప్రవేశపెట్టబడ్డాయి.
కాబట్టి ఇది ఎలా పని చేస్తుంది? సరే, eval ()ని తోసిపుచ్చుదాం (దీనిని అందరూ "చెడు" అని అంటారు) మరియు ఇది పరిశీలకుల నమూనా కాదని తోసిపుచ్చండి. కనుక ఇది పని చేసే విధానం డాగ్ క్లాస్ ఉపయోగించే పద్ధతులు మరియు లక్షణాలను కలిగి ఉండని ప్లగ్గబుల్ అని పిలువబడే దాచిన ఖాళీ తరగతితో ఉంటుంది. ఈ విధంగా, ఇది జరిగినప్పుడు, మాంత్రిక పద్ధతులు మనకు ఉపయోగించబడతాయి. కాబట్టి, 3 మరియు 4 భాగాలలో, మేము ప్లగ్ చేయదగిన తరగతి నుండి పొందిన వస్తువుకు లింక్ చేస్తున్నాము మరియు కుక్క తరగతికి కాదు. బదులుగా, మేము ప్లగిన్ క్లాస్ని డాగ్ ఆబ్జెక్ట్ని "టచ్" చేయనివ్వండి. (ఇది నాకు తెలియని డిజైన్ అయితే, దయచేసి నాకు తెలియజేయండి.)
హుక్ మరియు లిజనర్ పద్ధతి చాలా సాధారణంగా ఉపయోగించబడుతుంది, కానీ మీరు చేయగల ఇతర విషయాలు ఉన్నాయి. మీ అప్లికేషన్ యొక్క పరిమాణంపై ఆధారపడి మరియు కోడ్ను ఎవరు చూడాలనుకుంటున్నారు (ఇది FOSS స్క్రిప్ట్ లేదా ఇంట్లో ఏదైనా కావచ్చు) మీరు ప్లగిన్లను ఎలా పరిష్కరించాలనుకుంటున్నారు అనే దానిపై చాలా ప్రభావం చూపుతుంది.
kdeloach ఒక మంచి ఉదాహరణను కలిగి ఉంది, కానీ దాని అమలు మరియు హుక్ ఫంక్షన్ కొంచెం అసురక్షితంగా ఉన్నాయి. మీ ఇమెయిల్ కోసం php అప్లికేషన్ యొక్క స్వభావం మరియు మీరు ప్లగిన్లను ఎలా చూస్తారు అనే దాని గురించి మరింత సమాచారం కోసం నేను మిమ్మల్ని అడుగుతాను.
నా నుండి kdeloach చేయడానికి 1.
నేను ఉపయోగించిన విధానం ఇక్కడ ఉంది, ఇది Qt సిగ్నల్ / స్లాట్ మెకానిజం నుండి కాపీ చేయడానికి ప్రయత్నిస్తోంది, ఇది ఒక రకమైన అబ్జర్వర్ నమూనా. వస్తువులు సంకేతాలను విడుదల చేయగలవు. ప్రతి సిగ్నల్ సిస్టమ్లో ఐడెంటిఫైయర్ని కలిగి ఉంటుంది - ఇది పంపినవారి వస్తువు యొక్క id +ని కలిగి ఉంటుంది, ప్రతి సిగ్నల్ రిసీవర్లకు కట్టుబడి ఉంటుంది, ఇది కేవలం "కాల్ చేయగల", మీరు వాటిని స్వీకరించడానికి ఆసక్తి ఉన్న ఎవరికైనా సిగ్నల్లను పంపడానికి బస్సు తరగతిని ఉపయోగిస్తారు ఏదో జరుగుతుంది, మీరు సిగ్నల్ పంపుతున్నారు. క్రింద ఒక ఉదాహరణ మరియు అమలు ఉదాహరణ
ప్రవేశించండి (); ?>
జెఫ్ సలహాను అనుసరించడం మరియు ఇప్పటికే ఉన్న కోడ్ని పరిశీలించడం సులభమయిన మార్గం అని నేను కనుగొన్నాను. Wordpress, Drupal, Joomla మరియు ఇతర ప్రసిద్ధ PHP-CMSల APIలు ఎలా కనిపిస్తున్నాయి మరియు అనుభూతి చెందుతాయి అని చూడటానికి ప్రయత్నించండి. ఈ విధంగా, మీరు విషయాలను కొంచెం మందంగా చేయడానికి ఇంతకు ముందు ఆలోచించని ఆలోచనలను కూడా పొందవచ్చు.
వినియోగాన్ని నిర్ధారించడానికి చేర్చబడిన ఫైల్లో చేర్చే సాధారణ ఫైల్లను వ్రాయడం మరింత ప్రత్యక్ష సమాధానం. ఇది వర్గీకరించబడుతుంది మరియు ఒకే "hooks.php" భారీ ఫైల్లో అందించబడదు. జాగ్రత్తగా ఉండండి, ఎందుకంటే అవి చేర్చిన ఫైల్లు చివరికి మరింత ఎక్కువ డిపెండెన్సీలు మరియు కార్యాచరణను కలిగి ఉంటాయి. API డిపెండెన్సీని పరిమితం చేయడానికి ప్రయత్నించండి. I.E చేర్చడానికి తక్కువ ఫైల్లు.
అనే చక్కని ప్రాజెక్ట్ ఉంది
వల్లే డి'ఆస్టా. ఇటలీ. ఎడమవైపు మెనుని తెరవండి Valle d'Aosta Heroes of the Vine
ప్రపంచవ్యాప్తంగా ఎలక్ట్రికల్ అవుట్లెట్ రకాలు మరియు వోల్టేజీలు
ప్రపంచంలోని వివిధ దేశాలలో వోల్టేజ్ ప్రమాణాలు, ఫ్రీక్వెన్సీలు మరియు అవుట్లెట్ల రకాలు ఏమిటి
ఉత్తర మరియు దక్షిణ కొరియాల మధ్య సైనికరహిత జోన్ ఎలా మారింది
Windowsలో స్వయంచాలక నవీకరణలను నిలిపివేయండి