我一直在谷歌搜索一段时间,但我似乎无法找到解决我的问题的方法。我有一个带有2个应用程序的Codeigniter实例(后端和前端)。
所以我设置了我的应用程序文件夹:
现在我在2个应用程序之间有相似之处,比如模型等。所以我创建了一个“通用”包,就像这样(我发现这种方式在互联网上的某个地方做,不记得到底在哪里):
它可以正确自动加载,我可以在后面和前端之间共享模型等。但现在我想介绍一个MY_Model,你必须将它放在应用程序文件夹中的core
目录中(如文档所述)。当然,我想在3个应用程序包上共享模型。 (我希望前端和后端的模型可以扩展它,但也需要普通包中的模型)。
这是我被卡住的地方。我尝试在core
应用程序包中放置一个common
文件夹,但是我甚至无法使用common
包中的模型扩展它。
Class 'MY_Model' not found in /webroot/application/common/models/News_model.php on line 11
我似乎无法将其扩展到任何其他包中。
Class 'MY_Model' not found in /webroot/application/backend/models/Ad_model.php
我不想复制MY_model类3次,每次添加一些新功能时编辑3个不同的文件。
有什么方法可以解决这个问题吗?我似乎无法弄明白。
谢谢!
答案 0 :(得分:0)
您可以将核心目录移到外面并将其符号链接回每个结构。
class Level1: SKScene,SKPhysicsContactDelegate {
var ball:SKSpriteNode!
var paddle:SKSpriteNode!
var scoreLabel:SKLabelNode!
var score:Int = 0 {
didSet{
scoreLabel.text = "Score:\(score)"
}
}
override func didMove(to view: SKView) {
ball = self.childNode(withName: "Ball") as! SKSpriteNode
paddle = self.childNode(withName: "Paddle") as! SKSpriteNode
scoreLabel = self.childNode(withName: "Score") as! SKLabelNode
ball.physicsBody?.applyImpulse(CGVector(dx: 50, dy: 50))
ball.physicsBody?.mass=0.1
let border = SKPhysicsBody(edgeLoopFrom: (view.scene?.frame)!)
border.friction = 0
self.physicsBody = border
ball.physicsBody?.mass = 0.09
self.physicsWorld.contactDelegate = self
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
let touchLocation = touch.location(in: self)
paddle.position.x = touchLocation.x
}
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
let touchLocation = touch.location(in: self)
paddle.position.x = touchLocation.x
}
}
func didBegin(_ contact: SKPhysicsContact) {
let bodyAName = contact.bodyA.node?.name
let bodyBName = contact.bodyB.node?.name
if bodyAName == "Ball" && bodyBName == "Brick" || bodyAName == "Brick" && bodyBName == "Ball"{
if bodyAName == "Brick" {
contact.bodyA.node?.removeFromParent()
score += 1
} else if bodyBName == "Brick" {
contact.bodyB.node?.removeFromParent()
score += 1
}
}
}
override func update(_ currentTime: TimeInterval) {
if (score == 9) {
scoreLabel.text = "You Won!"
self.view?.isPaused = true
sleep(2)
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc = mainStoryboard.instantiateViewController(withIdentifier: "GameViewController")
self.view?.window?.rootViewController?.present(vc, animated: true, completion: nil)
level1done = true
}
if (ball.position.y < paddle.position.y) {
scoreLabel.text = "You Lost!"
self.view?.isPaused = true
sleep(2)
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
let vc = mainStoryboard.instantiateViewController(withIdentifier: "GameViewController")
self.view?.window?.rootViewController?.present(vc, animated: true, completion: nil)
}
}
}