PHP 8.5 Pipe Operator ಮತ್ತು Laravel Collections ನಡುವಿನ ವ್ಯತ್ಯಾಸ
PHP 8.5 ನಲ್ಲಿ pipe operator ಅನ್ನು ಪರಿಚಯಿಸಲಾಯಿತು. ಹೆಚ್ಚಿನ Laravel ડેವಲಪರ್ಗಳು ಇದನ್ನು ನಿರ್ಲಕ್ಷಿಸಿದ್ದಾರೆ. ನಾವು ವರ್ಷಗಳಿಂದ collect()->filter()->map() ಅನ್ನು ಬಳಸುತ್ತಿದ್ದೇವೆ. ಅದು ಕೆಲಸ ಮಾಡುತ್ತದೆ.
ನಂತರ Spatie Piper ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿತು. ಇದು pipe operator ಗೆ Laravel ಶೈಲಿಯ helpers ಗಳನ್ನು ತರುವ ಒಂದು library ಆಗಿದೆ. ಇದು arrays ಮತ್ತು strings ಗಾಗಿ standalone functions ಗಳನ್ನು ಬಳಸುತ್ತದೆ.
Piper ಎಂಬುದು Collections ಗೆ ಪರ್ಯಾಯವೇ? ಇಲ್ಲ. ಇದು ವಿಭಿನ್ನ ಉದ್ದೇಶಕ್ಕಾಗಿ ಬಳಕೆಯಾಗುತ್ತದೆ.
Piper ಎಲ್ಲಿ ಗೆಲ್ಲುತ್ತದೆ
• Native values. Collections ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಒಂದು object ನಲ್ಲಿ ಸುತ್ತುವರಿಯುತ್ತದೆ (wrap ಮಾಡುತ್ತದೆ). ನೀವು arrays ಅನ್ನು collections ಗೆ ಮತ್ತು ಮತ್ತೆ ಮೊದಲಿನ ಸ್ಥಿತಿಗೆ ಪರಿವರ್ತಿಸಬೇಕಾಗುತ್ತದೆ. Piper ಸಾಮಾನ್ಯ arrays ಮತ್ತು strings ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ. ಡೇಟಾ native ರೂಪದಲ್ಲಿ ಹೋಗುತ್ತದೆ ಮತ್ತು native ರೂಪದಲ್ಲೇ ಹೊರಬರುತ್ತದೆ.
• Mixing functions. ಒಂದು Collection chain ಕೇವಲ Collection class ನ methods ಗಳನ್ನು ಮಾತ್ರ ಕರೆಯುತ್ತದೆ. ಒಂದು pipe chain ಯಾವುದೇ function ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ. ನೀವು ಒಂದೇ ಹರಿವಿನಲ್ಲಿ (flow) Piper helpers, native PHP functions ಮತ್ತು ನಿಮ್ಮ ಸ್ವಂತ custom functions ಗಳನ್ನು ಬೆರೆಸಬಹುದು.
• Zero dependencies. Piper ಗೆ Laravel framework ಅಗತ್ಯವಿಲ್ಲ. ಇದು ಹೆಚ್ಚಿನ dependencies ಇಲ್ಲದೆ ಸ್ವಚ್ಛವಾದ ಕೋಡ್ ಬಯಸುವ package authors ಗೆ ಸೂಕ್ತವಾಗಿದೆ.
Collections ಎಲ್ಲಿ ಗೆಲ್ಲುತ್ತದೆ
• Feature depth. Collections ನಲ್ಲಿ groupBy() ಮತ್ತು pluck() ನಂತಹ 100 ಕ್ಕೂ ಹೆಚ್ಚು methods ಇವೆ. Piper ನಲ್ಲಿ ಕೇವಲ ಅತ್ಯಂತ ಸಾಮಾನ್ಯವಾದವುಗಳು ಮಾತ್ರ ಇವೆ.
• Lazy evaluation. LazyCollections ಬೃಹತ್ datasets ಗಳನ್ನು ಕಡಿಮೆ memory ಬಳಸಿ ನಿರ್ವಹಿಸುತ್ತವೆ. Piper ಪ್ರತಿ ಹಂತದಲ್ಲೂ ಹೊಸ array ಅನ್ನು ರಚಿಸುತ್ತದೆ. ಇದು ದೊಡ್ಡ ಪ್ರಮಾಣದ ಡೇಟಾದೊಂದಿಗೆ ನಿಮ್ಮ app ಅನ್ನು ನಿಧಾನಗೊಳಿಸಬಹುದು.
• Ecosystem fit. Eloquent collections ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. Query builders collections ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತವೆ. Piper ಬಳಸಲು framework ನೊಂದಿಗೆ ಹೋರಾಡುವುದು ಹೆಚ್ಚಾಗಿ ಹೆಚ್ಚಿನ ಕೆಲಸವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ.
• Discoverability. ನೀವು Collection ನಂತರ ಒಂದು dash ಟೈಪ್ ಮಾಡಿದಾಗ ನಿಮ್ಮ IDE ಎಲ್ಲಾ methods ಅನ್ನು ತೋರಿಸುತ್ತದೆ. Piper ನೊಂದಿಗೆ, ನೀವು ಪ್ರತಿಯೊಂದು function ಅನ್ನು ಮ್ಯಾನುಯಲ್ ಆಗಿ (manually) import ಮಾಡಬೇಕಾಗುತ್ತದೆ.
ದೊಡ್ಡ ಸವಾಲು
ನೀವು PHP 8.5 ಅನ್ನು ಬಳಸಲೇಬೇಕು. ಹೆಚ್ಚಿನ production servers ಇಂದಿಗೂ 8.2 ಅಥವಾ 8.4 ಅನ್ನು ಬಳಸುತ್ತಿವೆ. ನೀವು 8.5 ನಲ್ಲಿ ಇಲ್ಲದಿದ್ದರೆ, Piper ಈಗ ನಿಮಗೆ ಪ್ರಯೋಜನಕಾರಿಯಲ್ಲ.
ಅಳವಡಿಕೆಯ ಸಲಹೆಗಳು
ನೀವು packages ಅಥವಾ framework-agnostic code ಬರೆಯುತ್ತಿದ್ದರೆ Piper ಬಳಸಿ. objects ಗಳ ಹೊರೆಯಿಲ್ಲದೆ native arrays ಗಳನ್ನು ಪರಿವರ್ತಿಸಲು ಇದನ್ನು ಬಳಸಿ.
ನಿಮ್ಮ Laravel app ಒಳಗೆ Collections ಅನ್ನು ಬಳಸುತ್ತಿರಿ. ಅವು ಸಂಯೋಜಿತವಾಗಿವೆ (integrated), ಶಕ್ತಿಯುತವಾಗಿವೆ ಮತ್ತು ನಿಮ್ಮ ತಂಡವು ನಿರೀಕ್ಷಿಸುವಂತದ್ದಾಗಿವೆ.
Piper ಎಂಬುದು ಪರ್ಯಾಯವಲ್ಲ. ಇದು ಪ್ರಾಜೆಕ್ಟ್ಗಳ ನಡುವಿನ ಅಂತರವನ್ನು ತುಂಬುವ ಒಂದು ಸಾಧನವಾಗಿದೆ.
ಮೂಲ (Source): https://dev.to/hafiz619/php-85s-pipe-operator-vs-laravel-collections-where-piper-fits-and-where-it-doesnt-1bkl
