Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Berikan fail luaran akses kepada pokok objek

Berikan fail luaran akses kepada pokok objek

王林
王林ke hadapan
2024-02-08 23:15:22505semak imbas

Berikan fail luaran akses kepada pokok objek

Dalam artikel ini, editor php Shinichi akan memperkenalkan cara memberikan akses kepada pokok objek kepada fail luaran dalam PHP. Dalam pengaturcaraan berorientasikan objek, kebenaran akses antara objek adalah sangat penting, kerana ia boleh mengawal interaksi dan perkongsian data antara objek. Dengan menggunakan pengubah suai akses (awam, dilindungi, peribadi) dalam PHP, kami boleh mengehadkan skop akses objek dan memastikan keselamatan dan kebolehselenggaraan kod. Artikel ini akan menerangkan penggunaan pengubah suai akses ini secara terperinci dan menyediakan beberapa contoh aplikasi praktikal untuk membantu pembaca memahami dengan mendalam dan menggunakan konsep ini. Sama ada anda seorang pemula PHP atau pembangun yang berpengalaman, artikel ini akan memberikan anda pengetahuan yang berharga dan petua praktikal. Mari kita terokai misteri kebenaran akses objek dalam PHP!

Kandungan soalan

Andaikan modul saya mempunyai struktur fail .go berikut:

  • tree_definition.go
  • tree_creation.go

tree_creation menghuraikan beberapa fail dan mencipta pokok objek (pendek kata otree) daripadanya menggunakan struktur data dan kaedah (dan fungsi) yang ditakrifkan dalam tree_definition.

Semasa menghuraikan, saya melihat bahawa fail external.go mengandungi beberapa kod yang direka untuk mengakses otree dan mengubah suainya.

Setelah penghuraian selesai, kod dalam external.go sepatutnya boleh menggunakan otree dan mengubah suainya melalui API yang saya takrifkan dalam tree_definition. Ini semua berlaku semasa runtime.

Penjelasan:

  • Ya, saya cuba meniru tingkah laku DOM
  • external.go datang dari direktori lain, bukan dari dalam modul
  • External.go hanya kelihatan semasa runtime, apabila tree_creation menambah external.go ke struktur data otree

Saya telah melalui hampir semua langkah untuk menirunya. Ini bahagian terakhir. Malangnya saya tidak dapat memberikan pautan ke Git pada masa ini supaya anda boleh menyemaknya sendiri, tetapi saya menghargai setiap komen yang boleh membantu saya menjelaskan keadaan.

salam hormat!

Saya rasa saya faham. Nanti saya siarkan.

Penyelesaian

Baiklah, mari mulakan! Akhirnya, dengan bantuan sembang bing rakan saya, saya dapat mencari penyelesaian mudah tanpa menggunakan fail memori atau membuat permintaan http melalui localhost. Penyelesaian yang dicadangkan sangat elegan dan berfungsi dengan sempurna untuk saya! Saya masih fikir saya akan menggunakan fail memori, tetapi kita akan lihat. Ia bergantung kepada skalabiliti. Juga, terima kasih khas

@burakserdar

Jawapan beliau.

package main

// This will be in the runtime file
import (
    "bufio"
    "fmt"
    "os/exec"
)

func main() {
    cmd := exec.Command("go", "run", "user_defined.go")
    stdout, err := cmd.StdoutPipe()
    if err != nil {
        panic(err)
    }
    err = cmd.Start()
    if err != nil {
        panic(err)
    }
    scanner := bufio.NewScanner(stdout)
    for scanner.Scan() {
        fmt.Println(scanner.Text())
        if scanner.Text() == "some_command" {
            fmt.Println("found some_command")
        }
        if scanner.Text() == "another_command" {
            fmt.Println("found another_command")
        }
    }
    err = cmd.Wait()
    if err != nil {
        panic(err)
    }
}
Edit 1 Ternyata terdapat 3 cara komunikasi antara proses, tetapi yang paling berkesan untuk masalah saya ialah memori bersama.

Atas ialah kandungan terperinci Berikan fail luaran akses kepada pokok objek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam